lxml4.3怎么调用etree 怎么用?

lxml4.3怎么调用etree 怎么用?,第1张

etree.parse直接接受一个文档,按照文档结构解析

import xml.etree.ElementTree as ET

tree = ET.parse('country_data.xml')

root = tree.getroot()

etree.html可以解析html文件:

page = etree.HTML(html.lower().decode('utf-8'))

hrefs = page.xpath(u"//a")

for href in hrefs:

print href.attrib

你好!

可以通过lxml来获取指定标签的内容。

#安装lxml

pip install lxml

import requests

from lxml import html

def getHTMLText(url):

    ....

    

etree = html.etree

root = etree.HTML(getHTMLText(url))

#这里得到一个表格内tr的集合

trArr  = root.xpath("//div[@class='news-text']/table/tbody/tr")

#循环显示tr里面的内容

for tr in trArr:

    rank = tr.xpath("./td[1]/text()")[0]

    name = tr.xpath("./td[2]/div/text()")[0]

    prov = tr.xpath("./td[3]/text()")[0]

    strLen = 22-len(name.encode('GBK'))+len(name)

    print('排名:{:<3},   学校名称:{:<{}}\t,   省份:{}'.format(rank,name,strLen,prov))

希望对你有帮助!

互联网时代,我们可以轻松交换各种信息资源。随着数据量的增长,爬虫已经成了获取数据的主流方式。如果你需要爬取的数据量比较大,难免会遇到大规模爬虫IP被网站封禁的情况。大部分网站都会有反爬虫策略,我们该如何应对呢?和IPIPGO一起来看看吧~

方法一:对爬虫抓取进行压力控制,可以考虑使用 IPIPGO代理IP 访问目标站点。

proxy_list = list(pd.read_csv('ip_list.csv')['ip'])

spider_header = list(pd.read_csv('spider_header_list.csv')['header'])

proxy = random.choice(proxy_list)

header = random.choice(spider_header)

urlhandle = urllib.request.ProxyHandler({'http': proxy})

opener = urllib.request.build_opener(urlhandle)

urllib.request.install_opener(opener)

req = urllib.request.Request(url)

req.add_header('User-Agent', header)

author_poem = []

response_result = urllib.request.urlopen(req).read()

html = response_result.decode('utf-8')

html = etree.HTML(html)

方法二:频繁切换UserAgent

不同浏览器的不同版本都有不同的user_agent,是浏览器类型的详细信息,也是浏览器提交Http请求的重要头部信息。我们可以在每次请求的时候提供不同的user_agent,绕过网站检测客户端的反爬虫机制。比如说,可以把很多的user_agent放在一个列表中,每次随机选一个用于提交访问请求。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/6243358.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-19
下一篇 2023-03-19

发表评论

登录后才能评论

评论列表(0条)

保存