python爬虫,记录一下爬取过程,列表数据,翻页,post方式,保存字典
記錄一下自己的爬蟲(chóng)的過(guò)程把,最近在做個(gè)項(xiàng)目。
要爬取的網(wǎng)站比較簡(jiǎn)單。
其中的問(wèn)題是:
post方式,網(wǎng)站的數(shù)據(jù)有一些需要使用post方式才能獲得。
比如,
這部分要看到《發(fā)起的項(xiàng)目》,需要鼠標(biāo)點(diǎn)擊,剛開(kāi)始以為是ajax,其實(shí)不算,是js的方式獲取的。
因此,仔細(xì)研究發(fā)現(xiàn),其實(shí)網(wǎng)址是這樣的。
https://s*****view.php?id=GKUdgjKayCQvY
具體部分省略,看這個(gè)網(wǎng)址,其實(shí)沒(méi)什么,但是通過(guò)瀏覽器檢查,可以發(fā)現(xiàn),鼠標(biāo)點(diǎn)擊《發(fā)起的項(xiàng)目》,會(huì)有一個(gè)js動(dòng)作。
如果只有一頁(yè),
像這樣
那么不會(huì)發(fā)現(xiàn)js動(dòng)作。但是如果很多也,需要點(diǎn)擊,就會(huì)發(fā)現(xiàn),需要js了。
這個(gè)動(dòng)作,是包含post的。
具體的參數(shù)如下
因此,其實(shí)請(qǐng)求的網(wǎng)址,可以用這樣組成。
https://sd.zhiyuanyun.com/app/api/view.php?m=get_opps&type=2&id=89608371&p=3
所以,這里面就是id,p是頁(yè)面。其他都是默認(rèn)參數(shù)。
然后在利用post方式,構(gòu)造出來(lái)這個(gè)請(qǐng)求就可以了。
def get_proj_number(id):print("((((((((( >>>>>>>> 現(xiàn)在開(kāi)始 獲取 組織 一共開(kāi)展了 多少個(gè)項(xiàng)目 ")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參數(shù)弄成一個(gè)for循環(huán)就可以了。
保存列表數(shù)據(jù)
最后請(qǐng)求下來(lái)的數(shù)據(jù)網(wǎng)頁(yè)是一個(gè)列表
那么怎么保存這個(gè)列表。
列表包含 th? 和td
那么 我直接把td 做成列表,然后zip一下。
我就弄了一個(gè)簡(jiǎn)單點(diǎn)的。做一個(gè)zip(list)
總結(jié)
以上是生活随笔為你收集整理的python爬虫,记录一下爬取过程,列表数据,翻页,post方式,保存字典的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 新疆昌吉邮政编码
- 下一篇: python根据列表形成字典。