#科技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=\for item in items:
author_name = item.xpath('//*[@class=\info\
url = item.xpath('//*[@class=\
世上无难事只怕有心人,虽然写程序不易,但相信各位小伙伴都是很顽强的,没有解决不了的难题,你觉得呢?
相关推荐: