怎么在python中提取數(shù)據(jù)?很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。
創(chuàng)新互聯(lián)主營常州網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,app軟件開發(fā),常州h5微信平臺(tái)小程序開發(fā)搭建,常州網(wǎng)站營銷推廣歡迎常州等地區(qū)企業(yè)咨詢
Python主要應(yīng)用于:1、Web開發(fā);2、數(shù)據(jù)科學(xué)研究;3、網(wǎng)絡(luò)爬蟲;4、嵌入式應(yīng)用開發(fā);5、游戲開發(fā);6、桌面應(yīng)用開發(fā)。
1、正則表達(dá)式(re庫)
正則表達(dá)式通常用于在文本中查找匹配的字符串。Python里數(shù)量詞默認(rèn)是貪婪的(在少數(shù)語言里也可能是默認(rèn)非貪婪),總是嘗試匹配盡可能多的字符;非貪婪的則相反,總是嘗試匹配盡可能少的字符。
from get_html import download import re url = 'https://guojiadiqu.bmcx.com/AFG__guojiayudiqu/' page_content = download(url) country = re.findall('class="h3dabiaoti">(.*?)', 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)
beautifulSoup是用python語言編寫的一個(gè)HTML/XML的解析器,它可以很好地處理不規(guī)范標(biāo)記并將其生成剖析樹(parse tree)。它提供簡單而又常見的導(dǎo)航(navigating),搜索及修改剖析樹,此可以大大節(jié)省編程時(shí)間。
from get_html import download from bs4 import BeautifulSoup url = 'https://guojiadiqu.bmcx.com/AFG__guojiayudiqu/' html = download(url) #創(chuàng)建 beautifulsoup 對(duì)象 soup = BeautifulSoup(html,"html.parser") #搜索 country = soup.find(attrs={'class':'h3dabiaoti'}).text survey_info = soup.find(attrs={'id':'wzneirong'}).text print(country,survey_info)
3、lxml
lxml是XML和HTML的解析器,其主要功能是解析和提取XML和HTML中的數(shù)據(jù);lxml和正則一樣,也是用C語言實(shí)現(xiàn)的,是一款高性能的python HTML、XML解析器,也可以利用XPath語法,來定位特定的元素及節(jié)點(diǎn)信息。
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)#可進(jìn)行xpath解析 country_select = selector.xpath('//*[@id="main_content"]/h3') #返回列表 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='')
看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)的支持。