本文首發(fā)于我的博客:http://gongyanli.com/
代碼傳送門:https://github.com/Gladysgong/cninfo/tree/master/cninfo/pdf
前言:之前寫過一篇利用文章——PhantomJS+Selenium+Scrapy抓取巨潮資訊網(wǎng)企業(yè)信息(一)宽闲,來抓取巨潮資訊企業(yè)基本信息的文章佛呻,后來我還需要拿這些企業(yè)的年報的PDF文件最欠,所以我試過也用也用上面這種思路去抓取,但是太過復雜,需要動態(tài)點擊的元素太多方庭,實現(xiàn)起來很麻煩翩瓜。后來仔細看年報這塊兒是通過post請求加參數(shù)來發(fā)送request,所以就很簡單了序无。
一验毡、思路
第一張圖中我們選中了行業(yè)和所需要的年度報告,發(fā)送請求后會返回列表帝嗡,里面有所有農(nóng)業(yè)企業(yè)年度報告的鏈接晶通。
第二張圖中我們看到了請求的url和所需參數(shù),如圖示綠色框所示哟玷,所以我們只需要構(gòu)建這樣的請求即可狮辽。
query = {
'stock': '',
'searchkey': '',
# 'plate': PLATE,
'plate': '',
'category': CATEGORY,
'trade': '農(nóng)、林、牧喉脖、漁業(yè)',
'column': 'szse',
'columnTitle': '歷史公告查詢',
'pageNum': page_num,
'pageSize': MAX_PAGESIZE,
'tabName': 'fulltext',
'sortName': '',
'sortType': '',
'limit': '',
'showTitle': '',
'seDate': START_DATE + '~' + END_DATE,
}
r = requests.post(URL, query, HEADER, timeout=RESPONSE_TIMEOUT)
不復雜椰苟,把請求的返回內(nèi)容存入csv文件,最后再通過downloader讀取csv文件树叽,最后根據(jù)csv中的鏈接把PDF文件下載下來尊剔。
二、代碼實現(xiàn)
代碼我和PhantomJS+Selenium+Scrapy抓取巨潮資訊網(wǎng)企業(yè)信息(一)這篇文章的代碼放在一起了菱皆,放著cninfo的pdf文件中了须误,感興趣自己可以看,可以跑起來的仇轻。