国产乱子伦高清露脸对白-国产精品欧美久久久久天天影视-国产91视频一区-亚洲欧美日产综合在线网-黄视频网站在线看-国产欧美亚洲精品第1页-亚洲www在线-大学生女人三级在线播放-日本在线视频www鲁啊鲁-国产成人精品一区二区仙踪林-69精品欧美一区二区三区-成人欧美亚洲-日本污污网站-中国妞xxxhd露脸偷拍视频-国产精品aⅴ在线观看-精品中文字幕在线

極客小將

您現在的位置是:首頁 » python編程資訊

資訊內容

python3爬蟲入門:常用網絡爬蟲模塊和技術

極客小將2020-12-11-
簡介urllib模塊urllib庫是python中自帶的模塊,也是一個最基本的網絡請求庫,該模塊提供了一個urlopen()方法,通過該方法指定URL發送網絡請求來獲取數據。urllib是一個收集了多個涉及URL的模塊的包urllib.request打開和讀取URL三行代碼即可爬取百度首頁源代碼:imp
版權所有:https://wWw.pxcodeS.com

urllib模塊qOD少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

urllib庫是python中自帶的模塊,也是一個**基本的網絡請求庫,該模塊提供了一個urlopen()方法,通過該方法指定URL發送網絡請求來獲取數據。qOD少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

urllib 是一個收集了多個涉及 URL 的模塊的包
qOD少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

urllib.request 打開和讀取 URL
qOD少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

三行代碼即可爬取百度首頁源代碼:qOD少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

import urllib.request # 打開指定需要爬取的網頁 response=urllib.request.urlopen('http://www.baidu.com') # 或者是  # from urllib import request # response = request.urlopen('http://www.baidu.com') # 打印網頁源代碼 print(response.read().decode())

加入decode()是為了避免出現下圖中十六進制內容qOD少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

qOD少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

加入decode()進行解碼后qOD少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

qOD少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

下面三種本篇將不做詳述qOD少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

urllib.error 包含 urllib.request 拋出的異常qOD少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

urllib.parse 用于解析 URLqOD少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

urllib.robotparser 用于解析 robots.txt 文件qOD少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

requests模塊qOD少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

requests模塊是python中實現HTTP請求的一種方式,是第三方模塊,該模塊在實現HTTP請求時要比urllib模塊簡化很多,操作更加人性化。qOD少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

以GET請求為例:qOD少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

import requests response = requests.get('http://www.baidu.com/') print('狀態碼:', response.status_code) print('請求地址:', response.url) print('頭部信息:', response.headers) print('cookie信息:', response.cookies) # print('文本源碼:', response.text) # print('字節流源碼:', response.content)

輸出結果如下:qOD少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

狀態碼: 200 請求地址: http://www.baidu.com/ 頭部信息: {'Cache-Control': 'private, no-cache, no-store, proxy-revalidate, no-transform', 'Connection': 'keep-alive', 'Content-Encoding': 'gzip', 'Content-Type': 'text/html', 'Date': 'Sun, 10 May 2020 02:43:33 GMT', 'Last-Modified': 'Mon, 23 Jan 2017 13:28:23 GMT', 'Pragma': 'no-cache', 'Server': 'bfe/1.0.8.18', 'Set-Cookie': 'BDORZ=27315; max-age=86400; domain=.baidu.com; path=/', 'Transfer-Encoding': 'chunked'} cookie信息: <RequestsCookieJar[<Cookie BDORZ=27315 for .baidu.com/>]>

這里講解一下response.text和 response.content的區別:qOD少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

response.content是直接從網絡上面抓取的數據,沒有經過任何解碼,所以是一個 bytes類型
qOD少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

response.text是將response.content進行解碼的字符串,解碼需要指定一個編碼方式, requests會根據自己的猜測來判斷編碼的方式,所以有時候可能會猜測錯誤,就會導致解碼產生亂碼,這時候就應該使用 response.content.decode(‘utf-8’)qOD少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

進行手動解碼qOD少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

以POST請求為例qOD少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

import requests data={'word':'hello'} response = requests.post('http://www.baidu.com',data=data) print(response.content)

請求headers處理qOD少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

當爬取頁面由于該網頁為防止惡意采集信息而使用反爬蟲設置,從而拒絕用戶訪問,我們可以通過模擬瀏覽器的頭部信息來進行訪問,這樣就能解決反爬蟲設置的問題。qOD少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

通過瀏覽器進入指定網頁,右擊鼠標,選中“檢查”,選擇“Network”,刷新頁面后選擇第一條信息,右側消息頭面板將顯示下圖中請求頭部信息qOD少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

qOD少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

例如:qOD少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

import requests url = 'https://www.bilibili.com/' headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.129 Safari/537.36'} response = requests.get(url, headers=headers) print(response.content.decode())

網絡超時qOD少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

在訪問一個頁面,如果該頁面長時間未響應,系統就會判斷該網頁超時,所以無法打開網頁。qOD少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

例如:qOD少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

import requests url = 'http://www.baidu.com' # 循環發送請求50次 for a in range(0, 50):     try:    # timeout數值可根據用戶當前網速,自行設置         response = requests.get(url, timeout=0.03) # 設置超時為0.03         print(response.status_code)     except Exception as e:         print('異常'+str(e)) # 打印異常信息

部分輸出結果如下:qOD少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

qOD少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

代理服務
qOD少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

設置代理IP可以解決不久前可以爬取的網頁現在無法爬取了,然后報錯——由于連接方在一段時間后沒有正確答復或連接的主機沒有反應,連接嘗試失敗的問題。qOD少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

以下網站可以提供免費代理IP https://www.xicidaili.com/

例如:qOD少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

import requests # 設置代理IP proxy = {'http': '117.45.139.139:9006',          'https': '121.36.210.88:8080'          } # 發送請求 url = 'https://www.baidu.com' response = requests.get(url, proxies=proxy) # 也就是說如果想取文本數據可以通過response.text # 如果想取圖片,文件,則可以通過 response.content # 以字節流的形式打印網頁源代碼,bytes類型 print(response.content.decode()) # 以文本的形式打印網頁源代碼,為str類型 print(response.text) # 默認”iso-8859-1”編碼,服務器不指定的話是根據網頁的響應來猜測編碼。

Beautiful Soup模塊qOD少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

Beautiful Soup模塊是一個用于HTML和XML文件中提取數據的python庫。Beautiful Soup模塊自動將輸入的文檔轉換為Unicode編碼,輸出文檔轉換為UTF-8編碼,你不需要考慮編碼方式,除非文檔沒有指定一個編碼方式,這時,Beautiful Soup就不能自動識別編碼方式了,然后,僅僅需要說明一下原始編碼方式就可以了。qOD少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

例如:qOD少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

from bs4 import BeautifulSoup html_doc = """ <html><head><title>The Dormouse's story</title></head> <body> <p class="title"><b>The Dormouse's story</b></p> <p class="story">Once upon a time there were three little sisters; and their names were <a href="http://example.com/elsie" class="sister" id="link1">Elsie</a>, <a href="http://example.com/lacie" class="sister" id="link2">Lacie</a> and <a href="http://example.com/tillie" class="sister" id="link3">Tillie</a>; and they lived at the bottom of a well.</p> <p class="story">...</p> """ # 創建對象 soup = BeautifulSoup(html_doc, features='lxml') # 或者創建對象打開需要解析的html文件 # soup = BeautifulSoup(open('index.html'), features='lxml') print('源代碼為:', soup)# 打印解析的HTML代碼

運行結果如下:qOD少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

<html><head><title>The Dormouse's story</title></head> <body> <p class="title"><b>The Dormouse's story</b></p> <p class="story">Once upon a time there were three little sisters; and their names were <a class="sister" href="http://example.com/elsie" id="link1">Elsie</a>, <a class="sister" href="http://example.com/lacie" id="link2">Lacie</a> and <a class="sister" href="http://example.com/tillie" id="link3">Tillie</a>; and they lived at the bottom of a well.</p> <p class="story">...</p> </body></html>

用Beautiful Soup爬取百度首頁標題qOD少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

from bs4 import BeautifulSoup import requests response = requests.get('http://news.baidu.com') soup = BeautifulSoup(response.text, features='lxml') print(soup.find('title').text)

運行結果如下:qOD少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

百度新聞——海量中文資訊平臺

預約試聽課

已有385人預約都是免費的,你也試試吧...

国产乱子伦高清露脸对白-国产精品欧美久久久久天天影视-国产91视频一区-亚洲欧美日产综合在线网-黄视频网站在线看-国产欧美亚洲精品第1页-亚洲www在线-大学生女人三级在线播放-日本在线视频www鲁啊鲁-国产成人精品一区二区仙踪林-69精品欧美一区二区三区-成人欧美亚洲-日本污污网站-中国妞xxxhd露脸偷拍视频-国产精品aⅴ在线观看-精品中文字幕在线

        日韩在线不卡一区| 三区视频在线观看| 妺妺窝人体色www在线观看| 国产真人无码作爱视频免费| 涩涩网站在线看| 国产亚洲精品网站| 久久99久久99精品| 欧美一级小视频| 色免费在线视频| 欧美日韩亚洲第一| 国产欧美精品aaaaaa片| 中文字幕日韩久久| 999久久久精品视频| 日韩一级片播放| 久久午夜夜伦鲁鲁一区二区| 国产中文字幕视频在线观看| 强开小嫩苞一区二区三区网站| www.精品在线| 交换做爰国语对白| 国产成年人视频网站| 欧美成人精品欧美一级乱| 久久综合九色综合88i| 欧美精品在欧美一区二区| 四虎影院一区二区| 大地资源网在线观看免费官网| 四虎免费在线观看视频| 波多野结衣激情| 极品美女扒开粉嫩小泬| 日本熟妇人妻中出| 大桥未久一区二区| av免费播放网址| 亚洲高清免费在线观看| 亚洲小视频在线播放| 亚洲熟妇av一区二区三区| 免费在线观看污网站| 国产一二三在线视频| 色片在线免费观看| 波多野结衣乳巨码无在线| 亚洲怡红院在线| 欧美黄色一级片视频| 欧美在线观看视频免费| 亚洲一区二区中文字幕在线观看| 日本中文字幕在线视频观看| 四季av一区二区三区| 精品久久一二三| 肉大捧一出免费观看网站在线播放 | 17c国产在线| 无遮挡又爽又刺激的视频| 成人高清dvd| 欧美中文字幕在线观看视频| 182午夜视频| 日本一二区免费| 日韩欧美理论片| 午夜久久久精品| 久久精品国产99久久99久久久| www.色欧美| 久久精品免费网站| 国产精品v日韩精品v在线观看| 日韩欧美在线免费观看视频| 免费观看精品视频| 婷婷免费在线观看| 在线无限看免费粉色视频| 亚欧精品在线视频| 日韩 欧美 视频| 亚洲成人av免费看| 亚洲制服在线观看| 国产一区二区网| 中文字幕亚洲影院| 久激情内射婷内射蜜桃| 黑人粗进入欧美aaaaa| 午夜福利123| 国产福利视频在线播放| 天天久久综合网| 日韩 欧美 高清| 免费在线观看视频a| 97人人爽人人| 日本激情视频在线| 女人天堂av手机在线| 国产999免费视频| 一区二区三区免费播放| 大陆极品少妇内射aaaaa| 天天干天天曰天天操| 色噜噜狠狠一区二区| 欧美丰满熟妇bbbbbb百度| 久久人人爽人人爽人人av| 特级黄色录像片| 99久久99久久精品| 久久综合久久久久| 99视频在线免费播放| 男人的天堂狠狠干| 免费成人午夜视频| 中文字幕欧美人妻精品一区| 成人午夜免费在线| 91香蕉视频导航| 国产色视频在线播放| 久久久久xxxx| 男人天堂成人网| 国内外成人激情视频| 中文字幕免费高清在线| 成人日韩在线视频| 色综合久久久久无码专区| 久草青青在线观看| av在线网站免费观看| 无码人妻精品一区二区蜜桃网站| 欧美成人精品免费| 老司机午夜av| 国产真实老熟女无套内射| 天天操天天爽天天射| 黄页网站大全在线观看| 免费毛片小视频| 永久免费网站视频在线观看| 久久久久久香蕉| 久久国产精品网| 亚洲激情免费视频| 国内av免费观看| 午夜在线视频免费观看| 一本色道久久亚洲综合精品蜜桃| 国产毛片久久久久久国产毛片 | 日韩成人精品视频在线观看| 成人黄色av片| 久操手机在线视频| www.69av| 亚洲图片 自拍偷拍| www.精品在线| 男生操女生视频在线观看| 国产精品无码av无码| 最近免费中文字幕中文高清百度| 欧美人与动牲交xxxxbbbb| 红桃视频一区二区三区免费| 中文字幕 91| www.桃色.com| 波多野结衣av一区二区全免费观看 | 欧美 日韩 国产 在线观看| 久久人人爽av| 欧美日韩中文字幕在线播放| 神马午夜伦理影院| 欧美在线观看成人| 极品粉嫩美女露脸啪啪| 中文字幕日韩精品无码内射| 国产中文字幕免费观看| 午夜视频在线网站| 亚洲中文字幕无码av永久| 污污视频网站免费观看| 欧美三级午夜理伦三级老人| ww国产内射精品后入国产| 一起操在线视频| 国产中文字幕在线免费观看| 欧美三级理论片| 成人在线观看黄| 青青草成人免费在线视频| 午夜一级免费视频| 少妇激情一区二区三区| 日韩精品久久一区二区| 亚洲xxx在线观看| 毛片av免费在线观看| 国产经典久久久| 大桥未久一区二区| 亚洲天堂国产视频| 亚洲欧美激情网| 777一区二区| 裸体大乳女做爰69| 日本精品福利视频| 一级特黄妇女高潮| 在线观看视频在线观看| 日本中文字幕二区| 欧美美女一级片| www.射射射| 成人在线免费高清视频| 少妇av一区二区三区无码| 成人网站免费观看入口| 欧美久久在线观看| 久久久999视频| 一级做a免费视频| 久久免费视频2| 成人av一级片| 99精品999| 欧美韩国日本在线| 天美一区二区三区| 欧美又粗又长又爽做受| 成人在线观看黄| 欧美高清中文字幕| 天天干天天操天天做| 无码日本精品xxxxxxxxx| 性欧美在线视频| av视屏在线播放| av免费播放网址| 男女视频网站在线观看| av在线免费看片| 最新中文字幕免费视频| 国产成人永久免费视频| 99精品视频国产| 亚洲成人手机在线观看| 嫩草av久久伊人妇女超级a| 成年人午夜视频在线观看| 男人j进女人j| 国产又粗又爽又黄的视频| 黄色三级视频在线播放| 日本人69视频| 精品少妇人妻av一区二区| 男女污污的视频|