记录一下自己的爬虫的过程把,最近在做个项目。
要爬取的网站比较简单。
其中的问题是:
post方式,网站的数据有一些需要使用post方式才能获得。
比如,
这部分要看到《发起的项目》,需要鼠标点击,刚开始以为是ajax,其实不算,是js的方式获取的。
因此,仔细研究发现,其实网址是这样的。
https://s*****view.php?id=GKUdgjKayCQvY
具体部分省略,看这个网址,其实没什么,但是通过浏览器检查,可以发现,鼠标点击《发起的项目》,会有一个js动作。
如果只有一页,
像这样
那么不会发现js动作。但是如果很多也,需要点击,就会发现,需要js了。
这个动作,是包含post的。
具体的参数如下
因此,其实请求的网址,可以用这样组成。
https://sd.zhiyuanyun.com/app/api/view.php?m=get_opps&type=2&id=89608371&p=3
所以,这里面就是id,p是页面。其他都是默认参数。
然后在利用post方式,构造出来这个请求就可以了。
def get_proj_number(id): print("((((((((( >>>>>>>> 现在开始 获取 组织 一共开展了 多少个项目 ") params = (('m', 'get_opps'), ('type', '2'), ('id', id), ('p', "1"), ) response = requests.get( 'https://sd.zhiyuanyun.com/app/api/view.php', headers=headers, params=params) selector = Selector(response)
这样,把p参数弄成一个for循环就可以了。
最后请求下来的数据网页是一个列表
那么怎么保存这个列表。
列表包含 th 和td
那么 我直接把td 做成列表,然后zip一下。
我就弄了一个简单点的。做一个zip(list)