首先打開這個(gè)鏈接https://www.dingtalk.com/qiye/1.html
,可以網(wǎng)頁列出了很多企業(yè),點(diǎn)擊企業(yè),就看到了企業(yè)的信息。
所以,我們的思路就很明確了,通過https://www.dingtalk.com/qiye/1.html
這個(gè)入口鏈接獲取企業(yè)的URL,然后通過訪問企業(yè)的URL獲取企業(yè)的信息。在jupyter notebook中試一下。
企業(yè)的URL已經(jīng)獲取到了,然后再訪問企業(yè)的URL,看看能否獲取到企業(yè)的信息。
沒有。
寫請求頭,請求頭包含兩項(xiàng),一個(gè)是cookie,一個(gè)user-agent。加上請求頭再試試看,有了。
發(fā)現(xiàn)企業(yè)信息在js代碼里,寫正則表達(dá)式
創(chuàng)新互聯(lián)公司服務(wù)電話:18980820575,為您提供成都網(wǎng)站建設(shè)網(wǎng)頁設(shè)計(jì)及定制高端網(wǎng)站建設(shè)服務(wù),創(chuàng)新互聯(lián)公司網(wǎng)頁制作領(lǐng)域十載,包括護(hù)欄打樁機(jī)等多個(gè)行業(yè)擁有豐富的網(wǎng)站制作經(jīng)驗(yàn),選擇創(chuàng)新互聯(lián)公司,為網(wǎng)站保駕護(hù)航。
patterns = r'"businessInfoData":{"enterpriseName":"(.*?)","frName":"(.*?)","enterpriseType":"(.*?)","enterpriseStatus":"(.*?)","regCap":"(.*?)","regCapCur":"(.*?)","esDate":"(.*?)","regOrg":"(.*?)","operateScope":"(.*?)","address":"(.*?)","regNo":"(.*?)","creditCode":"(.*?)","region":"(.*?)"}'
results = re.findall(patterns, html)
ok,成功匹配出來
到此,發(fā)現(xiàn)很簡單了,立馬就把代碼給寫了出來,但發(fā)現(xiàn)一些問題,只有一部分企業(yè)的信息爬取了出來,大部分企業(yè)信息都獲取失敗了。這是咋回事呢,原來啊,有的企業(yè)URL源碼里有企業(yè)信息,而有的沒有。
然后,我查看完整企業(yè)信息,發(fā)現(xiàn)這個(gè)
但是,我無法構(gòu)造這個(gè)鏈接,憂傷。
所以,整個(gè)爬蟲到此為止。寫代碼的時(shí)候,原本想用入口鏈接不斷下一頁獲取所有企業(yè)URL,但一想,算了吧,直接簡單粗暴一點(diǎn)。然后呢,爬取的時(shí)候,爬取速度好慢。
最后,附上垃圾的源碼github。