python爬虫心得(包含一些小技巧),还在更新中

1.爬虫我现在常用的两种方法:

(1)手动定位所需数据的所在网址(request url),优点:直捣黄龙,一击致命。

       对于静态网站:直接右键导出网页源代码,通过ctrl+F即可查询到网页中显示的所有数据。通过右键检查选择Network——All,然后查看Name中的文件对应的Preview,如果其中显示该网页中几乎所有内容(包括你所需要的数据),就查看Headers,一般请求方式(request method)为Get,所需的网址为Request URL。

具体步骤:((1))import requests   ((2))headers = {......}    (注意:一般直接写‘User-Agent’即可)  ((3))response = requests.get('网址',headers = headers)

       对于动态网站:一般是通过AJAX(编写js脚本)生成的,在网页源码中查不到网页中显示的数据,一般通过右键检查选择Network——All或者XHR、JS、Doc等,然后查看Name中的文件对应的Preview,如果其中显示该网页中你所需要的数据,就查看Headers,一般请求方式(request method)为Get或Post,所需的网址为Request URL。

注意:动态网站反爬机制有的很复杂,一般通过在headers中将所需内容填全,cookies也很重要,还有params等

然后爬取过程中若出现error,可通过try....except: pass 保存出错前的数据,但出错后的数据就爬不了了,根本上解决办法是:

设置IP代理池、cookies池等  (注:这部分之前自己尝试过,这两天也会再试一下,然后将心得写上,实在不好意思。。。)

(2)通过自动化模拟人登录网站,我选用selenium,

注:这个之前用过,好久没用了,这几天会用一下,然后将心得补上,实在不好意思。。。

 

2.对于文本内容通过response.text得到的一般分为两种格式:

(1)json格式:是一个字符串里面包含着字典,字典里又套着字典

例如:

(2)xml格式:是一个字符串里面包含着html的一些程序

例如:

 

3.解析(parse):

(1)对于json格式的文本,一般不太好爬,爬取的网页为动态网页,从中获取自己所需的数据就非常方便,只需找到数据的位置然后通过调用字典的key即可获取其value

具体步骤:1.import json 2.bs = json.load(response.text)  3.bs['key'] = value

(2)对于xml格式的文本,一般比较好爬,爬取的网页为静态网页,获取数据我一般通过xpath。具体步骤:1.from lxml import etree  2.bs = etree.HTML(response.text)   3.bs.xpath('//...... ') .text 。

注意:通过xpath获取的为该元素的地址,是列表形式,须通过列表索引获取该地址,如下图所示:

 

 

 

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值