
這篇文章主要給大家介紹了關(guān)于python數(shù)據(jù)抓取的3種方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
三種數(shù)據(jù)抓取的方法
正則表達式(re庫)
BeautifulSoup(bs4)
lxml
*利用之前構(gòu)建的下載網(wǎng)頁函數(shù),獲取目標網(wǎng)頁的html,我們以https://guojiadiqu.bmcx.com/AFG__guojiayudiqu/為例,獲取html。

from?get_html?import?download
?
url?=?'https://guojiadiqu.bmcx.com/AFG__guojiayudiqu/'
page_content?=?download(url)
*假設(shè)我們需要爬取該網(wǎng)頁中的國家名稱和概況,我們依次使用這三種數(shù)據(jù)抓取的方法實現(xiàn)數(shù)據(jù)抓取。
1.正則表達式
from?get_html?import?download
import?re
?
url?=?'https://guojiadiqu.bmcx.com/AFG__guojiayudiqu/'
page_content?=?download(url)
country?=?re.findall('class="h2dabiaoti">(.*?)',?page_content)?#注意返回的是list
survey_data?=?re.findall('| (.*?) |
',?page_content)
survey_info_list?=?re.findall(' (.*?)
',?survey_data[0])
survey_info?=?''.join(survey_info_list)
print(country[0],survey_info)
2.BeautifulSoup(bs4)
from?get_html?import?download
from?bs4?import?BeautifulSoup
?
url?=?'https://guojiadiqu.bmcx.com/AFG__guojiayudiqu/'
html?=?download(url)
#創(chuàng)建 beautifulsoup 對象
soup?=?BeautifulSoup(html,"html.parser")
#搜索
country?=?soup.find(attrs={'class':'h2dabiaoti'}).text
survey_info?=?soup.find(attrs={'id':'wzneirong'}).text
print(country,survey_info)
3.lxml
from?get_html?import?download
from?lxml?import?etree?#解析樹
?
url?=?'https://guojiadiqu.bmcx.com/AFG__guojiayudiqu/'
page_content?=?download(url)
selector?=?etree.HTML(page_content)#可進行xpath解析
country_select?=?selector.xpath('//*[@id="main_content"]/h2')?#返回列表
for?country?in?country_select:
print(country.text)
survey_select?=?selector.xpath('//*[@id="wzneirong"]/p')
for?survey_content?in?survey_select:
print(survey_content.text,end='')
運行結(jié)果:

最后,引用《用python寫網(wǎng)絡(luò)爬蟲》中對三種方法的性能對比,如下圖:

僅供參考。

掃下方二維碼加老師微信
或是搜索老師微信號:XTUOL1988【切記備注:學(xué)習(xí)Python】
領(lǐng)取Python web開發(fā),Python爬蟲,Python數(shù)據(jù)分析,人工智能等學(xué)習(xí)教程。帶你從零基礎(chǔ)系統(tǒng)性的學(xué)好Python!
也可以加老師建的Python技術(shù)學(xué)習(xí)教程qq裙:245345507,二者加一個就可以!
歡迎大家點贊,留言,轉(zhuǎn)發(fā),轉(zhuǎn)載,感謝大家的相伴與支持
萬水千山總是情,點個【在看】行不行
*聲明:本文于網(wǎng)絡(luò)整理,版權(quán)歸原作者所有,如來源信息有誤或侵犯權(quán)益,請聯(lián)系我們刪除或授權(quán)事宜