記錄一下自己的爬蟲的過程把,最近在做個項目。
要爬取的網站比較簡單。
其中的問題是:
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)