本文目錄一覽:
零基礎學python(1)——爬取房天下網站信息
一、認識網頁
網頁分為三個部分:HTML(結構)、CSS(樣式)、JavaScript(功能)。
二、爬取網站信息入門
1、Soup = BeautifulSoup (html, ‘lxml’),使用beautifulsoup來解析網頁。
2、使用copy CSS selector來複制網頁元素的位置。
三、爬取房天下網站信息
1、導入requests和beautifulsoup
2、定義函數spider_ftx,把所需要爬取的信息都定義出來
3、調用函數spider_ftx
4、翻頁爬取二手房信息
由於每頁最多只能顯示40條信息,觀察每一頁網址的變化規律,寫一個循環調用的語句,把全部100頁的信息全都爬取下來。
四、小結:
目前只能爬取到網站的100頁信息,網站為了反爬,設置了可瀏覽的頁面量100。要想爬取網站的所有信息,可以通過分類去獲取,但是如何用python實現呢,請看下集。
python怎麼爬取網站數據
很簡單,三步,用爬蟲框架scrapy
1. 定義item類
2. 開發spider類
3. 開發pipeline
如果有不會的,可以看一看《瘋狂python講義》
如何用 Python 爬取需要登錄的網站
最近我必須執行一項從一個需要登錄的網站上爬取一些網頁的操作。它沒有我想像中那麼簡單,因此我決定為它寫一個輔助教程。
在本教程中,我們將從我們的bitbucket賬戶中爬取一個項目列表。
教程中的代碼可以從我的 Github 中找到。
我們將會按照以下步驟進行:
提取登錄需要的詳細信息
執行站點登錄
爬取所需要的數據
在本教程中,我使用了以下包(可以在 requirements.txt 中找到):
Python
requests
lxml
1
2
requests
lxml
步驟一:研究該網站
打開登錄頁面
進入以下頁面 「bitbucket.org/account/signin」。你會看到如下圖所示的頁面(執行註銷,以防你已經登錄)
仔細研究那些我們需要提取的詳細信息,以供登錄之用
在這一部分,我們會創建一個字典來保存執行登錄的詳細信息:
1. 右擊 「Username or email」 字段,選擇「查看元素」。我們將使用 「name」 屬性為 「username」 的輸入框的值。「username」將會是 key 值,我們的用戶名/電子郵箱就是對應的 value 值(在其他的網站上這些 key 值可能是 「email」,「 user_name」,「 login」,等等)。
2. 右擊 「Password」 字段,選擇「查看元素」。在腳本中我們需要使用 「name」 屬性為 「password」 的輸入框的值。「password」 將是字典的 key 值,我們輸入的密碼將是對應的 value 值(在其他網站key值可能是 「userpassword」,「loginpassword」,「pwd」,等等)。
3. 在源代碼頁面中,查找一個名為 「csrfmiddlewaretoken」 的隱藏輸入標籤。「csrfmiddlewaretoken」 將是 key 值,而對應的 value 值將是這個隱藏的輸入值(在其他網站上這個 value 值可能是一個名為 「csrftoken」,「 authenticationtoken」 的隱藏輸入值)。列如:「Vy00PE3Ra6aISwKBrPn72SFml00IcUV8」。
最後我們將會得到一個類似這樣的字典:
Python
payload = {
“username”: “USER NAME”,
“password”: “PASSWORD”,
“csrfmiddlewaretoken”: “CSRF_TOKEN”
}
1
2
3
4
5
payload = {
“username”: “USER NAME”,
“password”: “PASSWORD”,
“csrfmiddlewaretoken”: “CSRF_TOKEN”
}
請記住,這是這個網站的一個具體案例。雖然這個登錄表單很簡單,但其他網站可能需要我們檢查瀏覽器的請求日誌,並找到登錄步驟中應該使用的相關的 key 值和 value 值。
如何用Python爬蟲抓取網頁內容?
爬蟲流程
其實把網絡爬蟲抽象開來看,它無外乎包含如下幾個步驟
模擬請求網頁。模擬瀏覽器,打開目標網站。
獲取數據。打開網站之後,就可以自動化的獲取我們所需要的網站數據。
保存數據。拿到數據之後,需要持久化到本地文件或者數據庫等存儲設備中。
那麼我們該如何使用 Python 來編寫自己的爬蟲程序呢,在這裡我要重點介紹一個 Python 庫:Requests。
Requests 使用
Requests 庫是 Python 中發起 HTTP 請求的庫,使用非常方便簡單。
模擬發送 HTTP 請求
發送 GET 請求
當我們用瀏覽器打開豆瓣首頁時,其實發送的最原始的請求就是 GET 請求
import requests
res = requests.get(”)
print(res)
print(type(res))
Response [200]
class ‘requests.models.Response’
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/159277.html