电子商务网站设计与维护论文,wordpress怎么弄tag,宝塔面板上传自己做的网站,wordpress的留言功能情景#xff1a;传统的爬虫只需要设置fetch_typejs即可#xff0c;因为可以获取到整个页面。但是现在ajax应用越来越广泛#xff0c;所以有的网页不能用此种爬虫类型来获取页面的数据#xff0c;只能用slef.crawl()来发起http请求来抓取数据。
直接上例子#xff1a; 可以…情景传统的爬虫只需要设置fetch_typejs即可因为可以获取到整个页面。但是现在ajax应用越来越广泛所以有的网页不能用此种爬虫类型来获取页面的数据只能用slef.crawl()来发起http请求来抓取数据。
直接上例子 可以看到该网页的每一页的数据是通过ajax请求获取到的方式为POST所以不能用传统方法。
可以看到该请求的请求体我们需要把请求体和请求方法写到crawl函数的参数里。
直接上代码
# coding: utf-8
from pyspider.libs.base_handler import *class Handler(BaseHandler):every(minutes10)def on_start(self):data {channelid: 229105,sortfield: -docorderpri,-docreltime,classsql: chnlid40078,classcol: publishyear,classnum: 100,classsort: 0,cache: true,page: 1,prepage: 75,}save {req_body:data}# method指定POSTdata指定请求体save保存一些自定义字段。self.crawl(http://yjt.fujian.gov.cn/fjdzapp/search, callbackself.index_page, methodPOST, datadata, savesave)# 抓取请求的响应数据后会调用此接口config(age10*60)def index_page(self, response):print(response.save[req_body]) # 查看请求体print(response.json) # 获取所抓到的数据return response.jsondef on_result(self, result):# 处理结果 ...请求体和响应如下
需要注意的地方
可以看到字典的字段都是u...这表明是Unicode编码所以想要获取字典中的字段需要做下面的处理
response字典中有个recordCount的key我想获取他的值需要将其先按照utf-8的编码方式解码为Unicodepython2默认Unicode编码但是我们的脚本是utf-8的编码方式这样就可以获取到字典的值啦 recordCount response.json.get(recordCount.decode(utf-8))