爬取網頁後的抓取資料_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)
以上三種方法效能對比與結論:
相關文章
- 爬蟲抓取網頁資料原理爬蟲網頁
- 網頁資料抓取之噹噹網網頁
- Java抓取網頁資料(原網頁+Javascript返回資料)網頁JavaScript
- 從網頁上抓取資料網頁
- 如何用Python爬資料?(一)網頁抓取Python網頁
- [網路爬蟲]使用node.js cheerio抓取網頁資料爬蟲Node.js網頁
- 網頁抓取如何幫助資料分析?網頁
- Python 爬取網頁資料的兩種方法Python網頁
- wget 網頁爬蟲,網頁抓取工具wget網頁爬蟲
- 學會XPath,輕鬆抓取網頁資料網頁
- 網頁資料抓取工具,webscraper 最簡單的資料抓取教程,人人都用得上網頁Web
- 爬蟲技術抓取網站資料方法爬蟲網站
- node 爬蟲,使用 Google puppeteer 抓取 One一個 的網頁資料爬蟲Go網頁
- Python網路爬蟲抓取動態網頁並將資料存入資料庫MYSQLPython爬蟲網頁資料庫MySql
- Puppeteer爬取網頁資料網頁
- 爬蟲進階——動態網頁Ajax資料抓取(簡易版)爬蟲網頁
- 爬蟲抓取網頁的詳細流程爬蟲網頁
- toapi:抓取任意網頁內容並提供 HTTP API獲取資料API網頁HTTP
- Go抓取網頁資料並存入MySQL和返回json資料Go網頁MySqlJSON
- java抓取HTML頁面的資料(淘寶頁面),JavaHTML
- 網路爬蟲如何獲取IP進行資料抓取爬蟲
- Python中使用mechanize庫抓取網頁上的表格資料Python網頁
- 爬網入門:JAVA抓取網站網頁內容Java網站網頁
- 如何抓取網頁資訊?網頁
- python抓取網頁Python網頁
- Perl 6 網頁抓取網頁
- 網頁抓取五種常用的HTTP標頭網頁HTTP
- Python爬蟲使用代理proxy抓取網頁Python爬蟲網頁
- python初學-爬取網頁資料Python網頁
- 爬蟲抓取網路資料時經常遇到的六種問題爬蟲
- 爬蟲——網頁爬取方法和網頁解析方法爬蟲網頁
- 使用代理抓取網頁的原因網頁
- 抓取網頁中的原始碼.網頁原始碼
- 騰牛網抓取(單頁)
- QueryList免費線上網頁採集資料抓取工具-toolfk.com網頁
- 「無程式碼」高效的爬取網頁資料神器網頁
- 結合LangChain實現網頁資料爬取LangChain網頁
- 爬蟲原理與資料抓取爬蟲