爬取網頁後的抓取資料_3種抓取網頁資料方法
1. 正規表示式
(1)
re.findall('<tr id="places_area__row">.*?<td\s*class=["\']w2p_fw["\']>(.*?)</td>', html)
(2)
import re
pattern = re.compile("hello")
#match_list = re.findall(pattern, "hello world! hello") 這個是找全部匹配的,返回列表
match = pattern.match("hello world! hello") #這個是找匹配的,有就返回一個,沒有返回None
print(match)
2. BeautifulSoup(bs4)
轉Python中使用Beautiful Soup庫的超詳細教程:http://www.jb51.net/article/65287.htm
from bs4 import BeautifulSoup
>>> soup = BeautifulSoup(html, "html.parser") #用html直譯器對得到的html文字進行解析
>>> tr = soup.find(attrs={"id":"places_area__row"})
>>> tr
<tr id="places_area__row"><td class="w2p_fl"><label for="places_area" id="places_area__label">Area: </label></td><td class="w2p_fw">244,820 square kilometres</td><td class="w2p_fc"></td></tr>
>>> td = tr.find(attrs={"class":"w2p_fw"})
>>> td
<td class="w2p_fw">244,820 square kilometres</td>
>>> area = td.text
>>> print(area)
244,820 square kilometres
3. Lxml
Lxml 是基於libxml2這一XML解析庫的Python封裝,該模組使用C語言編寫,解析速度比BeautifulSoup更快。經過書中比較分析得出的結論,爬取網頁後抓取資料的一般的步驟為:先解析網頁原始碼(用這3種方法中的lxml),再選擇抓取資料(css選擇器)
#先解析網頁原始碼(lxml)示例
import lxml.html
broken_html = "<ul class=country><li>Area<li>Population</ul>"
tree = lxml.html.fromstring(broken_html) #解析已經完成
fixed_html = lxml.html.tostring(tree, pretty_print=True)
print(fixed_html)
#output
#b'<ul class="country">\n<li>Area</li>\n<li>Population</li>\n</ul>\n'
#解析網頁原始碼(lxml)後使用css選擇器提取目標資訊
import lxml.html
import cssselect
html = download("http://example.webscraping.com/view/Aland-Islands-2") #下載網頁
html = str(html)
tree = lxml.html.fromstring(html) #解析已經完成
td = tree.cssselect("tr#places_area__row > td.w2p_fw")[0] #選擇id="plac..."名為tr的標籤下的,class="w2p..."名為td的標籤中[0]元素
area = td.text_content() #目標資訊area值為td標籤中的text資訊
print(area)
以上三種方法效能對比與結論:
相關文章
- 爬蟲抓取網頁資料原理爬蟲網頁
- 如何用Python爬資料?(一)網頁抓取Python網頁
- 網頁資料抓取之噹噹網網頁
- Python 爬取網頁資料的兩種方法Python網頁
- 網頁抓取如何幫助資料分析?網頁
- 如何抓取網頁資訊?網頁
- Python網路爬蟲抓取動態網頁並將資料存入資料庫MYSQLPython爬蟲網頁資料庫MySql
- 學會XPath,輕鬆抓取網頁資料網頁
- 爬蟲技術抓取網站資料方法爬蟲網站
- Puppeteer爬取網頁資料網頁
- 爬蟲進階——動態網頁Ajax資料抓取(簡易版)爬蟲網頁
- Go抓取網頁資料並存入MySQL和返回json資料Go網頁MySqlJSON
- toapi:抓取任意網頁內容並提供 HTTP API獲取資料API網頁HTTP
- 爬蟲抓取網頁的詳細流程爬蟲網頁
- Python中使用mechanize庫抓取網頁上的表格資料Python網頁
- 網路爬蟲如何獲取IP進行資料抓取爬蟲
- 網頁抓取五種常用的HTTP標頭網頁HTTP
- 使用代理抓取網頁的原因網頁
- NodeJS使用PhantomJs抓取網頁NodeJS網頁
- 騰牛網抓取(單頁)
- 爬蟲抓取網路資料時經常遇到的六種問題爬蟲
- 爬蟲——網頁爬取方法和網頁解析方法爬蟲網頁
- 「無程式碼」高效的爬取網頁資料神器網頁
- 結合LangChain實現網頁資料爬取LangChain網頁
- 爬蟲原理與資料抓取爬蟲
- 資料從業者必讀:抓取了一千億個網頁後我才明白,爬蟲一點都不簡單網頁爬蟲
- 批量抓取網頁pdf檔案網頁
- 使用chromedriver抓取網頁截圖Chrome網頁
- QueryList免費線上網頁採集資料抓取工具-toolfk.com網頁
- WebMagic抓取 table分頁資料, table分頁時,URL不變Web
- 1688 API分享:抓取1688商品詳情頁資料API
- zf_利用feapder中的selenium網頁爬取資料網頁
- 用Jupyter—Notebook爬取網頁資料例項14網頁
- 用Jupyter—Notebook爬取網頁資料例項12網頁
- 網頁抓取的重要性介紹網頁
- IP地址在網頁抓取中的作用網頁
- IPIDEA大盤點,藉助網路爬蟲抓取資料的作用?Idea爬蟲
- 如何使用代理IP進行資料抓取,PHP爬蟲抓取亞馬遜商品資料PHP爬蟲亞馬遜
- 網頁抓取與IPIDEA代理IP的關係網頁Idea