python实战教你两种爬虫方案

发布时间:2020-04-04 14:34:33   来源:文档文库   
字号:

#科技V计划# 【python实战】教你两种爬虫方案

面对海量数据想保存下来慢慢回味,用python爬虫程序非常方便。

在写程序之前,首先要搞清楚目标网页的数据情况。通过在浏览器按F12进入开发者界面,在Network的XHR标签下,可以找到想要爬取的数据。当你仔细观察结果数据的时候,一般会发现两种情况。

第一种是json格式数据。

这是大多数网页的数据格式,如图1。在Preview标签页中可以看到美观的树形结构,这样的数据结构很容易在python中进行处理。

在python中可以通过以下语句将结果转换为json格式。
resp = requests.get(url,headers = headers)
result_content=resp.json()

再通过以下语句可以很容易地获取到树形结构里面的数据,例如:
if result_content.get('data'):
items = result_content.get('data') # 定位到data那一栏
for item in items: # 遍历items,获取0-5下的数据
if item:#先判断能不能拿到item
author_name = item.get('author').get('name')
voteup_count = item.get('voteup_count')

再来聊聊第二种数据格式,xml。

如果不幸遇到了这种数据格式,如图2,面对无边无际的一排数据只觉得头大,但也得咬牙往下做。教大家一招:先保存成文本,用好点的文本编辑器打开吧,至少能理出一个头绪。然后就是痛苦地使用xpath来解析网页数据了。

在读取到网页数据后,需要先把xml数据进行解析
resp = requests.get(url,headers = headers)
data = parsel.Selector(resp.text) # 解析网页

对于详细的内容,需要不厌其烦地写xpath语句进行html标签精确匹配。其中的各种通配符必须非常熟悉,而且稍微不注意就可能出错。例如:
items = data.xpath('//div[@class="comment"]') 
for item in items:
author_name = item.xpath('//*[@class="comment-info"]/a/text()').extract()[0]
url = item.xpath('//*[@class="comment-info"]/a/@href').extract()[0] 

世上无难事只怕有心人,虽然写程序不易,但相信各位小伙伴都是很顽强的,没有解决不了的难题,你觉得呢?

本文来源:https://www.2haoxitong.net/k/doc/e63d505c7a3e0912a21614791711cc7931b7781c.html

《python实战教你两种爬虫方案.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式