本篇筆記主要記錄學習嗶站up主:IT私塾的課程《Python爬蟲基礎5天速成(2021全新合集)Python入門+數(shù)據(jù)可視化》所做的筆記。
課程主要任務:爬取豆瓣電影top250電影的基本信息,包括電影的名稱、豆瓣評分、電影概況、電影鏈接等。
#加載所需要的包
from bs4 import BeautifulSoup
import re,sys,xlwt,urllib,sqlite3
import urllib.request
##如果運行的過程報ssl的錯誤,可以加入以下兩行代碼
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
1. 觀察網(wǎng)址特點
豆瓣電影的網(wǎng)頁url:https://movie.douban.com/top250,每頁25步電影,一共10頁展示完top250電影

豆瓣電影top250截圖
2. 確定url地址,偽裝自己不被阻攔,定義讀取url的函數(shù)
首先使用chrome瀏覽器開發(fā)者模式,找到自己電腦的'User-Agent'(要爬取哪個網(wǎng)址,就打開哪個網(wǎng)址找到自己的User-Agent)
def main():
base='https://movie.douban.com/top250?start='
askURL(base)
#得到一個網(wǎng)頁的具體信息,即:把網(wǎng)頁儲存為變量
def askURL(url):
head={'User-Agent':' Mozilla/5.0 (Macintosh; Intel Mac OS X 11_1_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Safari/537.36'}
request=urllib.request.Request(url,headers=head)
html=""
reponse=urllib.request.urlopen(request)
html=reponse.read().decode('utf-8')
return html
main()
3. 逐一解析網(wǎng)頁
2中定義了解析一個網(wǎng)頁的函數(shù),由于top25是是由10個網(wǎng)頁組成,所以我們要寫一個循環(huán),逐個解析每個網(wǎng)頁
def getdata(baseurl):
datalist=[]
for i in range(0,10):#生成每頁網(wǎng)址的url
url=baseurl+str(i*25)
html=askURL(url)#調(diào)用askURL,抓取每個網(wǎng)頁的信息
#解析網(wǎng)頁
bs=BeautifulSoup(html,'html.parser')#調(diào)用函數(shù),將網(wǎng)頁解析為樹狀結。
print(bs)#圖1是打印后的結果

圖1
筆記會持續(xù)更新