Python爬虫:Xpath爬取网页信息(附代码)
上一次分享了使用Python简单爬取网页信息的方法。但是仅仅对于单一网页的信息爬取一般无法满足我们的数据需求。对于一般的数据需求,我们通常需要从一个网页跳转到另外一个网页,才能获取到详细的信息。今天我要分享的就是,如何通过一个网页,获取到所链接到的网页的详细信息。
直接上代码
1.获取单个网页的信息,找到该网页中所链接的数据详情网址
#获取网页详情页面url
def get_detail_urls(page):
resp = requests.get(url,headers=headers)
text = resp.content.decode('utf-8')
time.sleep(2)
#提取数据
html = etree.HTML(text)
#print(html)
ul = html.xpath('//ul[@class="..."]')[0]#...为标签名称
#print(ul)
lis = ul.xpath('./li')
detail_urls = []
for li in lis:
detail_url = li.xpath('./div[@class="..."]/div[@class="..."]/h3/a/@href')#详情页面url
detail_url = detail_url[0]
#print(detail_url)
return detail_url
2.提取详情页面的数据
#提取详情页面的数据
def parse_detail_page(url):
resp = requests.get(url,headers=headers)
text = resp.content.decode('utf-8')
time.sleep(2)
html = etree.HTML(text)
title = html.xpath('//div[@class="title-info"]/h1/text()')
#存入txt文件
with open('test.txt', 'a', encoding='utf-8') as f:
for a in range(0,len(title)):
f.write(title[a].strip()+'\n')
f.close()
3.调用函数,自动翻页,爬取多个网页信息
def main():
for j in range(0, 10):
print("正在爬取第" + str(j) + "页数据...")
detail_urls = get_detail_urls(j)
for detail_url in detail_urls:
parse_detail_page(detail_url)
#print(text)
print("over")
这是一个完整的代码,里面具体的标签需要根据自己爬取的网页,查看网页源代码,找到需要的标签名称。整个代码应该算是清晰明了,如果有什么问题,欢迎指出~