91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python實現爬蟲的方法有哪些

發布時間:2021-08-07 09:41:13 來源:億速云 閱讀:137 作者:小新 欄目:開發技術

這篇文章主要介紹了Python實現爬蟲的方法有哪些,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

首頁外觀如下:

Python實現爬蟲的方法有哪些 

比如說我們想抓取每個新聞的標題和鏈接,并將其組合為一個字典的結構打印出來。首先查看 HTML 源碼確定新聞標題信息組織形式。

Python實現爬蟲的方法有哪些 

可以目標信息存在于 em 標簽下  a 標簽內的文本和  href 屬性中。可直接利用  requests 庫構造請求,并用  BeautifulSoup 或者  lxml 進行解析。

方式一: requests +  BeautifulSoup +  select css選擇器

 # select method
 import requests
 from bs4 import BeautifulSoup
 headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.119 Safari/537.36'} 
 url = 'http://news.qq.com/' 
 Soup = BeautifulSoup(requests.get(url=url, headers=headers).text.encode("utf-8"), 'lxml')
 em = Soup.select('em[class="f14 l24"] a')
 for i in em:
   title = i.get_text()
   link = i['href']
   print({'標題': title, 
 '鏈接': link
   })

很常規的處理方式,抓取效果如下:

Python實現爬蟲的方法有哪些 

方式二: requests +  BeautifulSoup +  find_all 進行信息提取

 # find_all method
 import requests
 from bs4 import BeautifulSoup
 headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.119 Safari/537.36'}
 url = 'http://news.qq.com/'
 Soup = BeautifulSoup(requests.get(url=url, headers=headers).text.encode("utf-8"), 'lxml') 
 em = Soup.find_all('em', attrs={'class': 'f14 l24'})for i in em:
   title = i.a.get_text()
   link = i.a['href']
   print({'標題': title,
      '鏈接': link
   })

同樣是 requests +  BeautifulSoup 的爬蟲組合,但在信息提取上采用了  find_all 的方式。效果如下:

Python實現爬蟲的方法有哪些 

方式三: requests +  lxml/etree +  xpath 表達式

 # lxml/etree method
 import requests
 from lxml import etree 
 headers = {  'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.119 Safari/537.36'}
 url = 'http://news.qq.com/'
 html = requests.get(url = url, headers = headers)
 con = etree.HTML(html.text)
 title = con.xpath('//em[@class="f14 l24"]/a/text()')
 link = con.xpath('//em[@class="f14 l24"]/a/@href')
 for i in zip(title, link):
   print({'標題': i[0],
 '鏈接': i[1]
   })

使用 lxml 庫下的  etree 模塊進行解析,然后使用  xpath 表達式進行信息提取,效率要略高于  BeautifulSoup +  select 方法。這里對兩個列表的組合采用了  zip 方法。python學習交流群:125240963效果如下:

Python實現爬蟲的方法有哪些 

方式四: requests +  lxml/html/fromstring +  xpath 表達式

 # lxml/html/fromstring method
 import requests
 import lxml.html as HTML 
 headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.119 Safari/537.36'}
 url = 'http://news.qq.com/'
 con = HTML.fromstring(requests.get(url = url, headers = headers).text)
 title = con.xpath('//em[@class="f14 l24"]/a/text()')
 link = con.xpath('//em[@class="f14 l24"]/a/@href')
 for i in zip(title, link):
   print({'標題': i[0],'鏈接': i[1]
   })

跟方法三類似,只是在解析上使用了 lxml 庫下的  html.fromstring 模塊。抓取效果如下:

Python實現爬蟲的方法有哪些 

感謝你能夠認真閱讀完這篇文章,希望小編分享的“Python實現爬蟲的方法有哪些”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

香河县| 个旧市| 赤峰市| 牟定县| 禹州市| 莱州市| 奈曼旗| 京山县| 辽阳市| 镇坪县| 辉县市| 平罗县| 临高县| 徐汇区| 日照市| 康保县| 长岛县| 隆安县| 遵义市| 贵德县| 视频| 晋中市| 昆山市| 繁昌县| 栖霞市| 海盐县| 商城县| 罗源县| 延边| 南漳县| 朝阳县| 白玉县| 惠东县| 乐安县| 泽普县| 河源市| 汾西县| 简阳市| 双城市| 濮阳市| 南宫市|