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来获取指定标签的内容。
#安装lxmlpip 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放在一个列表中,每次随机选一个用于提交访问请求。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)