python 爬蟲新手入門教程


python 爬蟲新手教程

一、什么是爬蟲

爬蟲就是把一個網站里的內容讀取下來

這里我們就要學習一個知識

我們看到的網頁是有一種叫HTML的語言編寫的

他可以給文字顯示不同的樣式

如:<p>hello</p> 就會顯示段落:hello

二、如何獲取網頁的內容

一般爬蟲不會把網頁內容爬下來

而是把網頁源代碼爬下來

就好比說:hello 會爬到 <p>hello</p>

如果要在瀏覽器上看源代碼

只需在網頁上右鍵點擊 選擇查看網頁源代碼即可

那么怎么用python把源代碼爬下來呢?

這是要下載一個模塊

在cmd里輸入:

pip install requests

然后就可以用模塊requests爬網頁了

import requests  # 導入模塊

url = 'https://sina.com.cn'  # 要爬的網址
html = requests.get(url)  # 獲取網頁源代碼
print(html.text)  # 輸出 注:需要text函數來返回源代碼

輸出:

 

細心的人可以看到后面的代碼有編碼問題

要把代碼轉成utf-8中文編碼

import requests

url = 'https://sina.com.cn'
html = requests.get(url)
html.encoding = 'utf-8'  # 將編碼設為utf-8中文編碼
print(html.text)

輸出

三、分析源代碼

最后要在源代碼中篩選出我們要的數據

需要用到模塊 lxml

在cmd里輸入:

pip install lxml

然后就要使用lxml來篩選數據

import requests
from lxml import etree

url = 'https://sina.com.cn'
html = requests.get(url)
html.encoding = 'utf-8'
element = etree.HTML(html.text)  # 獲取html
result = element.xpath('//a/text()')  # 進行篩選

for i in result:
    print(i)  # 輸出

輸出:

 

 

其中核心語句是

result = element.xpath('//a/text()')

而 //a/text() 的意思是獲取所以的a標簽的值

而常用的xpath語法如下

nodename      選取此節點的所有子節點
/         從當前節點選取直接子節點
//         從當前節點選取子孫節點
.         選取當前節點
..         選取當前節點的父節點
@        選取屬性
*          通配符,選擇所有元素節點與元素名
@*        選取所有屬性
[@attrib]          選取具有給定屬性的所有元素
[@attrib='value']         選取給定屬性具有給定值的所有元素
[tag]        選取所有具有指定元素的直接子節點
[tag='text']        選取所有具有指定元素並且文本內容是text節點

 四、篩選實例

如果要在sina.com.cn讀取部分新聞

 

 

那么要在鍵盤上按下F12

點左上角的按鈕

 

鼠標懸停在新聞上再點擊

在代碼欄中找新聞

 

 

 再找到所有新聞的父元素

 

 

這里可以看到ul的class為list-a news_top

在python中寫:

import requests
from lxml import etree

url = 'https://sina.com.cn'
html = requests.get(url)
html.encoding = 'utf-8'
element = etree.HTML(html.text)
result = element.xpath('//ul[@class="list-a news_top"]//a/text()')  # 進行篩選

for i in result:
    print(i)

 輸出

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM