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

極客小將

您現(xiàn)在的位置是:首頁(yè) » python編程資訊

資訊內(nèi)容

python3爬蟲(chóng)入門(mén):常用網(wǎng)絡(luò)爬蟲(chóng)模塊和技術(shù)

極客小將2020-12-11-
簡(jiǎn)介urllib模塊urllib庫(kù)是python中自帶的模塊,也是一個(gè)最基本的網(wǎng)絡(luò)請(qǐng)求庫(kù),該模塊提供了一個(gè)urlopen()方法,通過(guò)該方法指定URL發(fā)送網(wǎng)絡(luò)請(qǐng)求來(lái)獲取數(shù)據(jù)。urllib是一個(gè)收集了多個(gè)涉及URL的模塊的包urllib.request打開(kāi)和讀取URL三行代碼即可爬取百度首頁(yè)源代碼:imp
版權(quán)所有:https://wWw.pxcodeS.com

urllib模塊qOD少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)

urllib庫(kù)是python中自帶的模塊,也是一個(gè)**基本的網(wǎng)絡(luò)請(qǐng)求庫(kù),該模塊提供了一個(gè)urlopen()方法,通過(guò)該方法指定URL發(fā)送網(wǎng)絡(luò)請(qǐng)求來(lái)獲取數(shù)據(jù)。qOD少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)

urllib 是一個(gè)收集了多個(gè)涉及 URL 的模塊的包
qOD少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)

urllib.request 打開(kāi)和讀取 URL
qOD少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)

三行代碼即可爬取百度首頁(yè)源代碼:qOD少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)

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

加入decode()是為了避免出現(xiàn)下圖中十六進(jìn)制內(nèi)容qOD少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)

qOD少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)

加入decode()進(jìn)行解碼后qOD少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)

qOD少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)

下面三種本篇將不做詳述qOD少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)

urllib.error 包含 urllib.request 拋出的異常qOD少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)

urllib.parse 用于解析 URLqOD少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)

urllib.robotparser 用于解析 robots.txt 文件qOD少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)

requests模塊qOD少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)

requests模塊是python中實(shí)現(xiàn)HTTP請(qǐng)求的一種方式,是第三方模塊,該模塊在實(shí)現(xiàn)HTTP請(qǐng)求時(shí)要比urllib模塊簡(jiǎn)化很多,操作更加人性化。qOD少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)

以GET請(qǐng)求為例:qOD少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)

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

輸出結(jié)果如下:qOD少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)

狀態(tài)碼: 200 請(qǐng)求地址: 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的區(qū)別:qOD少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)

response.content是直接從網(wǎng)絡(luò)上面抓取的數(shù)據(jù),沒(méi)有經(jīng)過(guò)任何解碼,所以是一個(gè) bytes類(lèi)型
qOD少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)

response.text是將response.content進(jìn)行解碼的字符串,解碼需要指定一個(gè)編碼方式, requests會(huì)根據(jù)自己的猜測(cè)來(lái)判斷編碼的方式,所以有時(shí)候可能會(huì)猜測(cè)錯(cuò)誤,就會(huì)導(dǎo)致解碼產(chǎn)生亂碼,這時(shí)候就應(yīng)該使用 response.content.decode(‘utf-8’)qOD少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)

進(jìn)行手動(dòng)解碼qOD少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)

以POST請(qǐng)求為例qOD少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)

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

請(qǐng)求headers處理qOD少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)

當(dāng)爬取頁(yè)面由于該網(wǎng)頁(yè)為防止惡意采集信息而使用反爬蟲(chóng)設(shè)置,從而拒絕用戶(hù)訪(fǎng)問(wèn),我們可以通過(guò)模擬瀏覽器的頭部信息來(lái)進(jìn)行訪(fǎng)問(wèn),這樣就能解決反爬蟲(chóng)設(shè)置的問(wèn)題。qOD少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)

通過(guò)瀏覽器進(jìn)入指定網(wǎng)頁(yè),右擊鼠標(biāo),選中“檢查”,選擇“Network”,刷新頁(yè)面后選擇第一條信息,右側(cè)消息頭面板將顯示下圖中請(qǐng)求頭部信息qOD少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)

qOD少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)

例如:qOD少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)

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())

網(wǎng)絡(luò)超時(shí)qOD少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)

在訪(fǎng)問(wèn)一個(gè)頁(yè)面,如果該頁(yè)面長(zhǎng)時(shí)間未響應(yīng),系統(tǒng)就會(huì)判斷該網(wǎng)頁(yè)超時(shí),所以無(wú)法打開(kāi)網(wǎng)頁(yè)。qOD少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)

例如:qOD少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)

import requests url = 'http://www.baidu.com' # 循環(huán)發(fā)送請(qǐng)求50次 for a in range(0, 50):     try:    # timeout數(shù)值可根據(jù)用戶(hù)當(dāng)前網(wǎng)速,自行設(shè)置         response = requests.get(url, timeout=0.03) # 設(shè)置超時(shí)為0.03         print(response.status_code)     except Exception as e:         print('異常'+str(e)) # 打印異常信息

部分輸出結(jié)果如下:qOD少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)

qOD少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)

代理服務(wù)
qOD少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)

設(shè)置代理IP可以解決不久前可以爬取的網(wǎng)頁(yè)現(xiàn)在無(wú)法爬取了,然后報(bào)錯(cuò)——由于連接方在一段時(shí)間后沒(méi)有正確答復(fù)或連接的主機(jī)沒(méi)有反應(yīng),連接嘗試失敗的問(wèn)題。qOD少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)

以下網(wǎng)站可以提供免費(fèi)代理IP https://www.xicidaili.com/

例如:qOD少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)

import requests # 設(shè)置代理IP proxy = {'http': '117.45.139.139:9006',          'https': '121.36.210.88:8080'          } # 發(fā)送請(qǐng)求 url = 'https://www.baidu.com' response = requests.get(url, proxies=proxy) # 也就是說(shuō)如果想取文本數(shù)據(jù)可以通過(guò)response.text # 如果想取圖片,文件,則可以通過(guò) response.content # 以字節(jié)流的形式打印網(wǎng)頁(yè)源代碼,bytes類(lèi)型 print(response.content.decode()) # 以文本的形式打印網(wǎng)頁(yè)源代碼,為str類(lèi)型 print(response.text) # 默認(rèn)”iso-8859-1”編碼,服務(wù)器不指定的話(huà)是根據(jù)網(wǎng)頁(yè)的響應(yīng)來(lái)猜測(cè)編碼。

Beautiful Soup模塊qOD少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)

Beautiful Soup模塊是一個(gè)用于HTML和XML文件中提取數(shù)據(jù)的python庫(kù)。Beautiful Soup模塊自動(dòng)將輸入的文檔轉(zhuǎn)換為Unicode編碼,輸出文檔轉(zhuǎn)換為UTF-8編碼,你不需要考慮編碼方式,除非文檔沒(méi)有指定一個(gè)編碼方式,這時(shí),Beautiful Soup就不能自動(dòng)識(shí)別編碼方式了,然后,僅僅需要說(shuō)明一下原始編碼方式就可以了。qOD少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)

例如:qOD少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)

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> """ # 創(chuàng)建對(duì)象 soup = BeautifulSoup(html_doc, features='lxml') # 或者創(chuàng)建對(duì)象打開(kāi)需要解析的html文件 # soup = BeautifulSoup(open('index.html'), features='lxml') print('源代碼為:', soup)# 打印解析的HTML代碼

運(yùn)行結(jié)果如下:qOD少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)

<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爬取百度首頁(yè)標(biāo)題qOD少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)

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

運(yùn)行結(jié)果如下:qOD少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)

百度新聞——海量中文資訊平臺(tái)

預(yù)約試聽(tīng)課

已有385人預(yù)約都是免費(fèi)的,你也試試吧...

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

        久久久久久久9| 日本黄网站免费| 欧洲金发美女大战黑人| 国产一区二区三区在线免费| 久草视频这里只有精品| 欧美日韩亚洲一| 一区二区三区入口| 日本三日本三级少妇三级66| 天堂а√在线中文在线| 国产91对白刺激露脸在线观看| 中文字幕网av| 欧美少妇一区二区三区| 日韩手机在线观看视频| 国产乱码一区二区三区四区| 青青草视频国产| 玩弄japan白嫩少妇hd| 国产精品jizz在线观看老狼| 青青草国产免费| 在线观看免费av网址| 激情小视频网站| 少妇一级淫免费播放| 青青草成人免费在线视频| 成年网站免费在线观看| 免费看国产曰批40分钟| 三年中国中文在线观看免费播放| 国自产拍偷拍精品啪啪一区二区| 亚洲第一成肉网| 欧美一级黄色片视频| 亚洲av综合色区| jizz大全欧美jizzcom| 中文字幕无码精品亚洲资源网久久| 999精彩视频| 99精品人妻少妇一区二区 | 午夜av中文字幕| 无罩大乳的熟妇正在播放| 久久久国产精华液999999| 黄色动漫在线免费看| 91免费版看片| 亚洲天堂网2018| 国产精品igao| 成人在线观看黄| 欧美精品自拍视频| 丁香六月激情婷婷| 女人床在线观看| 国产卡一卡二在线| 欧美国产日韩另类| 天天色综合社区| www.四虎成人| 日本熟妇人妻xxxxx| 精品欧美一区免费观看α√| 青草网在线观看| 日本男女交配视频| 日本一二三区在线| 一起操在线视频| 91女神在线观看| 午夜剧场在线免费观看| 日韩 国产 一区| 亚洲xxx在线观看| 天天操狠狠操夜夜操| 天美一区二区三区| 国产大尺度在线观看| 日本天堂免费a| 国产手机免费视频| 人妻熟妇乱又伦精品视频| 黄色片视频在线免费观看| 欧美成人黑人猛交| 8x8x最新地址| 亚洲无在线观看| 久久久国内精品| 精品国产一二三四区| 亚洲免费av一区二区三区| 伊人国产在线视频| www.午夜色| 亚洲熟妇无码一区二区三区| 已婚少妇美妙人妻系列| 一区二区三区韩国| 亚洲色图偷拍视频| 欧美黄色免费网址| 欧美a在线视频| 日韩av片免费观看| 草草视频在线免费观看| 欧美日韩在线不卡视频| av中文字幕网址| 久草免费福利在线| 青青青在线视频免费观看| 四虎永久免费网站| 欧美黄网站在线观看| 久久艹这里只有精品| 国产日产欧美视频| 亚洲热在线视频| 97av视频在线观看| 国产美女视频免费| 成年人网站大全| 2021国产视频| 污片在线免费看| 成年人看的毛片| 五月天激情播播| 国产成人精品视频免费看| 26uuu成人| 日本熟妇人妻中出| 久久av综合网| 国产九九九视频| www日韩在线观看| 国产一区二区三区乱码| 日本网站在线看| 日韩无套无码精品| 成人性生活视频免费看| 欧美h视频在线观看| 熟女少妇精品一区二区| 人妻av无码专区| 四虎成人在线播放| 777视频在线| 岳毛多又紧做起爽| 日韩黄色短视频| 欧美另类videosbestsex日本| 能看的毛片网站| 国产真人做爰毛片视频直播| 欧洲xxxxx| 红桃视频一区二区三区免费| 五月婷婷丁香色| 亚洲高清在线免费观看| 男人天堂网视频| 国产成人无码精品久久久性色| 99er在线视频| avav在线播放| 国产在线视频综合| 国内精品国产三级国产99| 国产卡一卡二在线| 日韩av福利在线观看| 国产九九九视频| 欧美日韩亚洲国产成人| 成年人黄色在线观看| 日韩不卡一二区| 国产对白在线播放| 午夜久久久久久久久久久| 青青视频免费在线| www.男人天堂网| 久久av综合网| 自慰无码一区二区三区| 激情综合网婷婷| 午夜激情福利在线| 日本中文字幕二区| 日本中文字幕在线不卡| av久久久久久| 国产在线播放观看| 国产男女在线观看| 手机看片福利日韩| 亚洲第一天堂久久| 91免费版看片| 免费黄色福利视频| av在线网址导航| 欧美黄网在线观看| 亚洲人成无码www久久久| 九九九九九国产| 黑人巨茎大战欧美白妇| 国产中文字幕在线免费观看| 一区二区三区国产免费| 一区二区三区日韩视频| 一二三四视频社区在线| 黄色永久免费网站| 裸体裸乳免费看| 免费在线观看亚洲视频| 香蕉视频999| 国产欧美日韩小视频| 国产wwwxx| 高清无码一区二区在线观看吞精| 成人在线观看a| 美国av在线播放| 韩国一区二区av| 好色先生视频污| 亚欧在线免费观看| 国产激情片在线观看| 色综合天天色综合| 久久福利一区二区| 国产原创精品在线| 精品国偷自产一区二区三区| 污片在线免费看| 草草久久久无码国产专区| 欧美精品久久96人妻无码| 国产极品美女高潮无套久久久| 欧美专区第二页| 中文字幕第80页| 无码中文字幕色专区| av磁力番号网| mm131国产精品| 精品免费国产一区二区| 妞干网在线观看视频| 国产日韩视频在线播放| 亚洲精品久久久中文字幕| 国内外成人激情视频| 亚洲色成人www永久在线观看| 波多野结衣网页| 手机免费av片| 亚欧激情乱码久久久久久久久| 成人小视频在线看| 久久99久久99精品| 800av在线免费观看| 亚洲av综合色区| 亚洲精品在线网址| 午夜一级免费视频|