Python簡單網絡爬蟲實戰—下載論文名稱,作者信息(上)


上學期小師妹的小導師要她收集2009年到現在所有年份的某個方向的全部論文的名稱、作者

小師妹看着dblp上茫茫多的論文,心生絕望,弄了一下午+一個晚上才弄好了09和10兩年的

於是我自告奮勇,用python給她寫個腳本,雖然之前沒有經驗,但是也算是一種新的嘗試

首先,最方便查找論文的地方當然是dblp,該網頁長這樣:

作者名稱和論文名稱都有,就很方便。

1.python請求網頁

那么接下來首先要用python get到整個網頁。

這個小工具需要用到兩個模塊:

import requests
from bs4 import BeautifulSoup

一個是requests,用於發起網頁請求。

向網址為address(address必須完整,https://www.baidu.com)的html發起請求,返回的html賦給res,res編碼格式為‘utf-8’:

res = requests.get(address)
res.encoding = 'utf-8'

另一個是BeautifilSoup模塊

這個模塊用來存儲讀取的網頁(這里還要安裝lxml模塊):

soup = BeautifulSoup(res.text, 'lxml')

這樣,soup中就存儲了整個網頁的全部信息,接下來所要提取的信息都從soup中來。

 那么怎么從soup中提取所需信息呢?這就需要查看源網頁的結構了

2.谷歌瀏覽器查看網頁結構

打開谷歌瀏覽器,打開目標網頁(26th NDSS 2019: San Diego, CA, USA),F12:

在Elements中顯示了該html的所有結構

基本上一個網頁結構如下:

<html lang="en">
<head>...</head>
<body class="****" style="*****">...</body>
</html> == $0

用鼠標移動到代碼行,左邊的網頁就會顯示相應的部分。這讓我們可以迅速找到所需對象的位置。

可以看到,作者名稱是.publ-list類下的.entry.editor類下的.data類下的author

論文name是.publ-list類下的.entry.inproceedings類下的.data下的title

一個.data型代表一篇論文,可能沒有author,也有可能有多個author,但title只有一個。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM