91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 23KB
    文件類型: .zip
    金幣: 2
    下載: 1 次
    發布日期: 2024-02-06
  • 語言: 其他
  • 標簽: python??爬蟲??

資源簡介

爬取豆瓣電影排名程序,包含非常詳細的注釋,基本每句程序都有,最后保存到EXCEL表中,分為兩個文件夾,一個是庫函數文件,一個是主函數文件,最后還有一個已爬取成功的EXCEL表。

資源截圖

代碼片段和文件信息

#?coding?=?utf-8
#?上行代碼是為了在編寫程序中可以打入中文漢字
import?requests???#?引入系統或者第三方的模塊
import?sys
import?re???#?正則表達式
from?bs4?import?BeautifulSoup?????#?網頁解析,獲取數據,進行文字匹配,其實引用的是bs4里邊一個模塊
import?urllib???#?制定URL,獲取網頁數據
import?xlwt??#?進行excel操作
import?sqlite3???#?進行SQL數據庫操作
import?urllib.request
def?main():
????#??爬取網頁,需要一個基本的URL
????baseurl?=?‘https://movie.douban.com/top250?start=0‘
????datalist?=?getdata(baseurl)
????savepath?=?“豆瓣電影TOP250.xls“??#?定義保存路徑在豆字前邊不加.\\則表示保存在當前路徑下
????savedata(datalistsavepath)????#?調用保存數據函數把datalist數據保存到savepath路徑下
findlink?=?re.compile(r‘‘)???#?創建正則表達式對象,表示規則(字符串的模式)點號代表有一個字符,星號代表有無數個字符,問號代表這樣的字符串出現0次到1次,字母r在這里表示對字符串中的特殊字符不做解析處理
filmname?=?re.compile(r‘tle“>(.*)‘)??#?創建正則表達式對象,影片的名字,其中r后邊的span?class?是查看網頁上按f12查看網頁源代碼,發現電影名字兩邊代碼是這個。
def?getdata(baseurl):??#?獲取數據,在括號內給該函數一個路徑。
????“““爬取網頁操作函數“““
????datalist?=?[]??#?先定義列表
????for?i?in?range(010):??#?因為要爬取10頁的內容,所有askurl要使用10次
????????url?=?baseurl?+?str(i*25)??#?每次要爬取的網頁地址更新,每頁有25條電影排行,所有乘以25,
????????html?=?askurl(url)????????#?調用每次更新后的網址,獲取一頁的html
????????solvedata?=?BeautifulSoup(html“html.parser“)??#?逐一解析數據,要在for循環里,因為沒爬取一個網頁都要解析一次解析器是html.parser,解析對象是html
????????for?item?in?solvedata.find_all(‘div‘class_=“item“):?????#?在解析后的數據solvedata里找到符合要求的字符
????????????data?=?[]???#?保存一部電影的所有信息
????????????item?=?str(item)???#?把提取到的數據強制轉換為字符串,方便后續處理
????????????link?=?re.findall(findlinkitem)[0]??#?re庫用來通過正則表達式?查找指定的字符串,中括號0表示只找第一個符合的字符串就可,findlink已在前邊做了全局變量,為指定字符串的規則模式
????????????data.append(link)???#?前邊定義了一個data空字典,此處使用append把查取到的電影連接追加進data字典中去
????????????name?=?re.findall(filmnameitem)[0]??#?查找到的電影名字給變量name因為該句程序是在已經找到的div,class=item標簽數據中再次查找,所以此處中括號0表示是在一個div.class下的第一個符合的字符串
????????????data.append(name)???#?前邊定義了一個data空字典,此處使用append把查取到的電影名字追加進data字典中去
????????????datalist.append(data)???#?把處理好的電影信息保存在data字典后,在追加到datalist中
????return?datalist????#?返回一個數據列表,把網址里邊的數據都給返回回來
def?askurl(url):???#?得到指定一個url?的網頁內容
????head?=?{“User-Agent“:“Mozilla/5.0?(Windows?NT?10.0;?WOW64)?AppleWebKit/537.36?(KHTML?like?Gecko)?Chrome/70.0.3538.25?Safari/537.36?Core/1.70.3823.400?QQBrowser/10.6.4302.400“}???#?指定一個頭部信息
????#?在網頁中按F12,可以查到User-agent
????request?=?urllib.request.Request(urlheaders=head)??#?把傳遞數據的對象,和頭部信息封裝起來到request中
????html?=?““
????try:
????????response?=?urllib.request.urlopen(request)???#?發出請求了,返回一個response對象,這個對象里邊有我們整個網頁的信息
????????html?=?response.read().decode(“utf-8“)??#?網頁的信息讀取出來,并decode進行解碼
????except?urllib.error.URLError?as?e:??#?整個try?和except是對該爬取網頁程序做一個打包,如果爬取失敗出現error,就打印輸出相關的錯誤提示代碼和錯誤原因
????????if?hasattr(e“code“):
????????????print(e.code)
????????if?hasattr(e“reason“):
????????????print(e.reason)
????return?html??#?函數執行完,返回一個html,然后與getdata函數里的html?=?askurl(url),對獲取的網頁內容更新一次
def?savedata(datalistsavepath):??#?括號內是保存路徑
????“““保存數據函數“““
????ExcelFile?=?xlwt.Workbook(encoding=“utf-8“)
????ExcelBiao?=?ExcelFile.add_sheet(‘豆瓣電影TOP250‘)
????MeiLieName?=?(“電影鏈接““電影名字“)

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2020-12-15?22:55??pa_chong\
?????目錄???????????0??2020-12-15?22:58??pa_chong\.idea\
?????文件??????????50??2020-12-10?21:23??pa_chong\.idea\.gitignore
?????文件???????????5??2020-12-15?22:55??pa_chong\.idea\.name
?????目錄???????????0??2020-12-10?21:23??pa_chong\.idea\inspectionProfiles\
?????文件?????????174??2020-12-10?21:23??pa_chong\.idea\inspectionProfiles\profiles_settings.xml
?????文件?????????727??2020-12-10?21:23??pa_chong\.idea\inspectionProfiles\Project_Default.xml
?????文件?????????188??2020-12-10?21:23??pa_chong\.idea\misc.xml
?????文件?????????275??2020-12-10?21:23??pa_chong\.idea\modules.xml
?????文件?????????291??2020-12-10?21:23??pa_chong\.idea\pa_chong.iml
?????文件????????8178??2020-12-15?22:58??pa_chong\.idea\workspace.xml
?????目錄???????????0??2020-12-15?22:51??pa_chong\ku_han_shu\
?????文件????????5358??2020-12-15?22:51??pa_chong\ku_han_shu\p1.py
?????目錄???????????0??2020-12-15?22:42??pa_chong\ku_han_shu\__pycache__\
?????文件????????2168??2020-12-15?22:42??pa_chong\ku_han_shu\__pycache__\p1.cpython-38.pyc
?????目錄???????????0??2020-12-15?22:55??pa_chong\zhu_wen_jian\
?????文件?????????634??2020-12-15?22:46??pa_chong\zhu_wen_jian\pa.py
?????文件???????55296??2020-12-15?22:54??pa_chong\豆瓣電影TOP250.xls

評論

共有 條評論