日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python爬虫教程(一)

發布時間:2025/3/8 python 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python爬虫教程(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

? ? ? ?Python版本:python3.6

? ? ? ?使用工具:pycharm

一、第一個爬蟲程序

? ? ? ?獲得網址源代碼。如下圖獲取百度頁面源代碼

二、Web請求過程

? ? ? ?1. 服務器渲染:在服務器中直接把數據和html整合在一起,返回給瀏覽器。(在頁面源代碼中能看到數據)

? ? ? ?2. 客戶端渲染:第一次請求只要一個html骨架,第二次請求拿到數據,進行數據展示。(在頁面源代碼中,看不到數據)

三、requests入門

? ? ? ?1. 獲取搜狗引擎搜索周杰倫頁面源代碼。

? ? ? ?2. 出現報錯,網頁存在反爬,處理反扒。

? ? ? ?3. 修改代碼,使其更加靈活獲取不同搜索內容對應不同頁面源代碼。

? ? ? ?4.當請求方式為POST時,以百度翻譯為例獲取頁面源代碼。

? ? ? ??5. 當想要爬取數據與網頁框架不在一起時。以豆瓣電影排行榜為例。需先找到所需爬取數據位置。

? ? ? ?將其參數變量進行封裝,補充網址參數,其參數信息位置及代碼如下:

?? ? ??注意:使用完爬蟲程序后,關閉爬蟲程序。

? ? ? ?如上示例需使用resp.close()關閉爬蟲程序。


四、數據解析

? ? ? ?本文中將介紹三種解析方式:re解析、bs4解析、xpath解析。

? ? ? ?1.?re解析:Regular Expression,正則表達式,一種使用表達式的方式對字符串進行匹配的語法規則。
? ? ? ?優點:速度快、效率高、準確性高

? ? ? ?缺點:上手難度較高

? ? ? ?語法:使用元字符進行排列組合用來匹配字符串(元字符是具有固定含義的特殊符號),常用元字符

? ? ? ?.? ? ? ?匹配除換行符以外的任意字符 ??? ? ? ?? ? ? ?? ? ? ? ? ?a|b 匹配字符a或b

? ? ? ?\w? ? 匹配字母或數字或下劃線 ?? ? ? ?? ? ? ?? ? ? ?? ? ? ???????\W 匹配非字母或數字或下劃線

? ? ? ?\s? ? ?匹配任意空白符 ????????? ? ? ?? ? ? ?? ? ? ?? ? ? ?? ? ? ????????\S 匹配非空白符

? ? ? ?\d? ? ?匹配數字 ?????????????????? ? ? ?? ? ? ?? ? ? ?? ? ? ?? ? ? ?? ? ?? ?\D 匹配非數字????????????

? ? ? ?[…]? 匹配字符組中的字符 ????????? ? ? ?? ? ? ?? ? ? ?? ? ? ??? [^…] 匹配除字符組中的所有字符

? ? ? ?^? ? ? 匹配字符串的開始 ???????????? ? ? ?? ? ? ?? ? ? ?? ? ? ?? ? ?? ?$? 匹配字符串的結束

? ? ? ?量詞:控制元字符出現的次數

? ? ? ? ?*? ?? ?重復零次或多次

? ? ?? ?+? ? ??重復一次或多次

? ? ? ???? ? ?重復零次或一次

? ? ???{n}? ? ?重復n次

? ? ??{n,}? ?? 重復n次或更多次

? ? ?{n,m}? ?重復n到m次
? ? ?(1)re模塊使用,findall() 匹配字符串中所有的符合正則的內容

? ? ?(2)finditer()匹配字符串中所有的內容,返回迭代器

? ? ? ?從迭代器中拿出內容需要.group()

? ? ?(3)search,找到一個結果就返回,返回的結果是match對象,拿數據需使用.group()

? ? ?(4)match,從頭開始匹配

? ? ? ?當選取數據開始即為所需數據時,可輸出結果。

? ? ?(5)預加載正則表達式,可重復使用

?? ? ?(6)正則中內容單獨提取。我們將想要提取內容部分定義組(?P<分組名字>正則),然后使用.group()提取某個組的內容。(re.S:讓.能夠匹配換行符)

?? ? ? ? 2. 實戰爬取豆瓣Top250電影信息。
? ? ?(1)使用requests,拿到頁面源代碼。

?? ? ?(2)使用re,解析數據
?

?? ? ? ? 設定爬取以上四個數據,電影名字、年份、評分、評價人數,在頁面源代碼中找到所需內容位置(紅色框),并找到內容定位方法及位置(白色框)?

?? ? ? ? 解析數據:其中.strip()去掉年份前面空格。

?? ? ? ?將獲取到文件保存為文件。導入csv,將內容存入字典,同理year需單獨處理。

?? ? ? ?輸出文件data.csv內容

?? ? ? ?3. 實戰爬取電影天堂下載鏈接,目標爬取2021必看熱片信息。

? ? ?(1)獲取頁面源代碼

?? ? ? ? 如上輸出結果中存在亂碼問題,我們默認使用的字符集為utf-8,可看到其網站的字符集為gb2312,需要指定使用字符集解決亂碼問題。

?? ? ?(2)定位到2021必看熱片,在頁面源代碼中找到所需位置。

?? ? ? (3)從2021必看熱片中提取到子頁面的鏈接地址

? ? ? ?得到的子頁面鏈接不完整,缺少域名,需要進行一個鏈接的拼接。

??? ? ? 得到了完整的子頁面鏈接,將子頁面鏈接保存起來。

?? ? ? ?提取子頁面內容,輸出得到片名及下載鏈接。

總結

以上是生活随笔為你收集整理的python爬虫教程(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。