這裡爬取貓眼電影 top100 榜的資訊,作為學習的第乙個demo。
今天開始接觸的python,從爬蟲開始。 語言相對來說比較簡單,環境配置到是花了不少時間。
有個要注意的點是在引入beautifursoup庫的時候會報錯,因為3.x的庫需要引入的是beautifursoup4.
到這一步環境配置基本上ok了,可以開始進入正題了
這裡我跟的乙個教程是
python3網路爬蟲實戰
,知識點比較廣,從乙個爬蟲事例開始.
提取出貓眼電影 top100 榜的電影名稱、時間、評分、等資訊,提取的站點 url 為:提取的結果以檔案形式儲存下來。
新增requests依賴庫,注意不是request
本節我們需要抓取的目標站點為:開啟之後便可以檢視到榜單的資訊,如圖
接下來我們用**實現這個過程,首先抓取第一頁的內容,我們實現乙個 get_one_page() 方法,傳入 url 引數,然後將抓取的頁面結果返回,然後再實現乙個 main() 方法呼叫一下,初步**實現如下:
import requests
def get_one_page(url):
response = requests.get(url)
if response.status_code == 200:
return response.text
return none
def main():
url = ''
html = get_one_page(url)
print(html)
main()
沒接觸過正則的看這裡
隨後將提取的結果寫入檔案,在這裡直接寫入到乙個文字檔案中,通過 json 庫的 dumps() 方法實現字典的序列化,並指定 ensure_ascii 引數為 false,這樣可以保證輸出的結果是中文形式而不是 unicode 編碼,**實現如下:
def write_to_json(content):
with open('result.txt', 'a') as f:
print(type(json.dumps(content)))
f.write(json.dumps(content, ensure_ascii=false,).encode('utf-8'))
def main():
url = ''
html = get_one_page(url)
for item in parse_one_page(html):
write_to_json(item)
if __name__ == '__main__':
for i in range(10):
main(offset=i * 10)
將 main() 方法修改一下,接收乙個 offset 值作為偏移量,然後構造 url 進行爬取,實現如下
def main(offset):
url = '?offset=' + str(offset)
html = get_one_page(url)
for item in parse_one_page(html):
print(item)
write_to_file(item)
完整**
import json
import requests
from requests.exceptions import requestexception
import re
import time
def get_one_page(url):
try:
response = requests.get(url)
if response.status_code == 200:
return response.text
return none
except requestexception:
return none
def parse_one_page(html):
pattern = re.compile('.*?board-index.*?>(\d+).*?data-src="(.*?)".*?name">(.*?).*?star">(.*?)
.*?releasetime">(.*?)
' + '.*?integer">(.*?).*?fraction">(.*?).*?', re.s)
items = re.findall(pattern, html)
for item in items:
yield
def write_to_file(content):
with open('result.txt', 'a', encoding='utf-8') as f:
f.write(json.dumps(content, ensure_ascii=false) + '\n')
def main(offset):
url = '?offset=' + str(offset)
html = get_one_page(url)
for item in parse_one_page(html):
print(item)
write_to_file(item)
if __name__ == '__main__':
for i in range(10):
main(offset=i * 10)
time.sleep(1)
python3爬蟲入門
pip install requests2 匯入requests import requests 3 requests方法 requests.get 獲取html網頁的主要方法,對應http的get4 獲取流程 url 使用get方法獲取資料,返回包含網頁資料的response響應,超時時間測試 r...
Python3爬蟲入門 一
python3爬蟲入門 在瀏覽器的位址列輸入url位址,在網頁處右鍵單擊,找到檢查。不同瀏覽器的叫法不同,chrome瀏覽器叫做檢查,firefox瀏覽器叫做檢視元素,但是功能都是相同的 可見即可爬 技術上 違法的 擦邊球 一 url 專業一些的叫法是統一資源定位符 uniform resource...
python3爬蟲快速入門攻略
複製過來的內容 一 什麼是網路爬蟲?1 定義 網路爬蟲 web spider 又被稱為網頁蜘蛛,是一種按照一定的規則,自動地抓取 資訊的程式或者指令碼。2 簡介 網路蜘蛛是乙個很形象的名字。如果把網際網路比喻成乙個蜘蛛網,那麼spider就是在網上爬來爬去的蜘蛛。網路蜘蛛是通過網頁的鏈結位址來尋找網...