2020年小结-附爬虫小记
有个朋友让帮忙写个爬虫,才发现有点生疏了。花了点时间写了一下,想要记录在CSDN,才发现已经有一年没有写过东西了,感慨良多。2020磕磕绊绊忙于毕业,找工作,也成为了北漂一族,总体还算顺遂。废话结束,步入正题。
- get方式:不同页的数据可以在url中显示,通过requests访问不同的url得到数据。但如果访问次数多的话,不同的网站可能会有限制,就需要伪造user-agent或使用sleep。
- 浏览器插件模拟正常访问:使用selenium的这种方法主要是为了解决requests无法执行javaScript代码的问题,配合浏览器插件进行爬虫。一些小的网站都适用,但对于美团之类的网站把selenium做了限制,数据在前端采集后是做了去标识化处理的。
- 直接获取JS数据文件:还有一些网站的数据是从js文件中有选择的进行展示的,利用 chrome开发者工具Sources面板功能,查找当前展示数据对应的js文件,会有事半功倍的效果。
- post方式:通过post不同的数据格式,得到返回的数据文件。我主要解决的是日期控件的问题。
# coding=utf-8
import requests
import datetime
#爬取商务部农副产品数据
post_url = "https://cif.mofcom.gov.cn/cif/getEnterpriseListForDate.fhtml"
# 现在的时间
now = datetime.datetime.now()
# 递减的时间
delta = datetime.timedelta(days=-1)
offset = now
# 当日期减少到10年后的日期,循环结束
while str(offset.strftime('%Y-%m-%d')) != '2020-12-27':
offset += delta
data = {
'cateId': '170020 ',
'searchDate': str(offset.strftime('%Y-%m-%d'))
}
tqHtml = requests.post(post_url, data=data)
res = tqHtml.text
print res
print "------------------------------------------------------"
对一个网站爬虫,还是不能急于上手,摸清楚页面的可以提供的信息,再找到合适的方法。磨刀不误砍柴工。