如何用python爬取知網(wǎng)論文數(shù)據(jù)?
授人以魚(yú)不如授人以漁,我介紹一下用Python自動(dòng)化下載我想要的論文參考文獻(xiàn)格式的方法。其用到的方法和工具同從知網(wǎng)爬取論文數(shù)據(jù)類似,你可以做個(gè)參考。
工具:selenium瀏覽器: Chrome引用的庫(kù):為了將每個(gè)下載到的文件都能對(duì)應(yīng)正確的文件名,用了多線程來(lái)監(jiān)聽(tīng)下載目錄文件夾,用watchdog一個(gè)開(kāi)源庫(kù)來(lái)監(jiān)聽(tīng)下載目錄文件夾,當(dāng)該文件夾中出現(xiàn)新的文件時(shí),程序自動(dòng)將該文件進(jìn)行重命名。
軟件從一個(gè)txt文件中讀取出需要下載的文件名稱,然后進(jìn)行自動(dòng)化下載。從txt中讀取文件名稱時(shí),用到了正則表達(dá)式。
需要下載的文獻(xiàn)在txt中
打開(kāi)瀏覽器
打開(kāi)瀏覽器后,需要獲取到頁(yè)面的相應(yīng)操作控件,需要獲取輸入框和搜索按鈕,selenium提供了find_element_by_id函數(shù),可以在界面中找到控件的id即可
同理找到搜索按鈕的id,然后在輸入框中填入需要搜索的文章,觸發(fā)按鈕的click事件。
按照上述思路進(jìn)行界面自動(dòng)化操作,進(jìn)入到想要的下載鏈接按鈕處
現(xiàn)在需要獲取到該鏈接,即圖中的href鏈接既是需要下載的內(nèi)容鏈接
事實(shí)上,下載按鈕有相應(yīng)的屬性值,只需要通過(guò)get_attribute函數(shù)獲取即可。
以上既是自動(dòng)化下載文獻(xiàn)引用格式的一個(gè)過(guò)程。爬取知網(wǎng)論文思路類似,完全可以通過(guò)Selenium來(lái)實(shí)現(xiàn)。