摘要:百度云搜索搜網盤利用系統自帶的庫寫簡單爬蟲獲取一個的源碼讀出源碼內容將字節轉化成字符串正則獲取頁面指定內容獲取源碼學院實戰群正則規則,獲取到號將網絡文件下載保存到本地,參數網絡文件,參數保存路徑
【百度云搜索:http://www.lqkweb.com】 【搜網盤:http://www.swpan.cn】
利用python系統自帶的urllib庫寫簡單爬蟲
urlopen()獲取一個URL的html源碼
read()讀出html源碼內容
decode("utf-8")將字節轉化成字符串
#!/usr/bin/env python # -*- coding:utf-8 -*- import urllib.request html = urllib.request.urlopen("http://edu.51cto.com/course/8360.html").read().decode("utf-8") print(html)
正則獲取頁面指定內容
#!/usr/bin/env python # -*- coding:utf-8 -*- import urllib.request import re html = urllib.request.urlopen("http://edu.51cto.com/course/8360.html").read().decode("utf-8") #獲取html源碼 pat = "51CTO學院Python實戰群((d*?))" #正則規則,獲取到QQ號 rst = re.compile(pat).findall(html) print(rst) #["325935753"]
urlretrieve()將網絡文件下載保存到本地,參數1網絡文件URL,參數2保存路徑
#!/usr/bin/env python # -*- coding:utf-8 -*- from urllib import request import re import os file_path = os.path.join(os.getcwd() + "/222.html") #拼接文件保存路徑 # print(file_path) request.urlretrieve("http://edu.51cto.com/course/8360.html", file_path) #下載這個文件保存到指定路徑
urlcleanup()清除爬蟲產生的內存
#!/usr/bin/env python # -*- coding:utf-8 -*- from urllib import request import re import os file_path = os.path.join(os.getcwd() + "/222.html") #拼接文件保存路徑 # print(file_path) request.urlretrieve("http://edu.51cto.com/course/8360.html", file_path) #下載這個文件保存到指定路徑 request.urlcleanup()
info()查看抓取頁面的簡介
#!/usr/bin/env python # -*- coding:utf-8 -*- import urllib.request import re html = urllib.request.urlopen("http://edu.51cto.com/course/8360.html") #獲取html源碼 a = html.info() print(a) # C:UsersadminAppDataLocalProgramsPythonPython35python.exe H:/py/15/chshi.py # Date: Tue, 25 Jul 2017 16:08:17 GMT # Content-Type: text/html; charset=UTF-8 # Transfer-Encoding: chunked # Connection: close # Set-Cookie: aliyungf_tc=AQAAALB8CzAikwwA9aReq63oa31pNIez; Path=/; HttpOnly # Server: Tengine # Vary: Accept-Encoding # Vary: Accept-Encoding # Vary: Accept-Encoding
getcode()獲取狀態碼
#!/usr/bin/env python # -*- coding:utf-8 -*- import urllib.request import re html = urllib.request.urlopen("http://edu.51cto.com/course/8360.html") #獲取html源碼 a = html.getcode() #獲取狀態碼 print(a) #200
geturl()獲取當前抓取頁面的URL
#!/usr/bin/env python # -*- coding:utf-8 -*- import urllib.request import re html = urllib.request.urlopen("http://edu.51cto.com/course/8360.html") #獲取html源碼 a = html.geturl() #獲取當前抓取頁面的URL print(a) #http://edu.51cto.com/course/8360.html
timeout抓取超時設置,單位為秒
是指抓取一個頁面時對方服務器響應太慢,或者很久沒響應,設置一個超時時間,超過超時時間就不抓取了
#!/usr/bin/env python # -*- coding:utf-8 -*- import urllib.request import re html = urllib.request.urlopen("http://edu.51cto.com/course/8360.html",timeout=30) #獲取html源碼 a = html.geturl() #獲取當前抓取頁面的URL print(a) #http://edu.51cto.com/course/8360.html
自動模擬http請求
http請求一般常用的就是get請求和post請求
get請求
比如360搜索,就是通過get請求并且將用戶的搜索關鍵詞傳入到服務器獲取數據的
所以我們可以模擬百度http請求,構造關鍵詞自動請求
quote()將關鍵詞轉碼成瀏覽器認識的字符,默認網站不能是中文
#!/usr/bin/env python # -*- coding: utf-8 -*- import urllib.request import re gjc = "手機" #設置關鍵詞 gjc = urllib.request.quote(gjc) #將關鍵詞轉碼成瀏覽器認識的字符,默認網站不能是中文 url = "https://www.so.com/s?q="+gjc #構造url地址 # print(url) html = urllib.request.urlopen(url).read().decode("utf-8") #獲取html源碼 pat = "(w*w*w*)" #正則獲取相關標題 rst = re.compile(pat).findall(html) # print(rst) for i in rst: print(i) #循環出獲取的標題 # 官網 < em > 手機 < / em > # 官網 < em > 手機 < / em > # 官網 < em > 手機 < / em > 這么低的價格 # 大牌 < em > 手機 < / em > 低價搶 # < em > 手機 < / em > # 淘寶網推薦 < em > 手機 < / em > # < em > 手機 < / em > # < em > 手機 < / em > # < em > 手機 < / em > # < em > 手機 < / em > # 蘇寧易購買 < em > 手機 < / em > # 買 < em > 手機 < / em > # 買 < em > 手機 < / em >
post請求
urlencode()封裝post請求提交的表單數據,參數是字典形式的鍵值對表單數據
Request()提交post請求,參數1是url地址,參數2是封裝的表單數據
#!/usr/bin/env python # -*- coding: utf-8 -*- import urllib.request import urllib.parse posturl = "http://www.iqianyue.com/mypost/" shuju = urllib.parse.urlencode({ #urlencode()封裝post請求提交的表單數據,參數是字典形式的鍵值對表單數據 "name": "123", "pass": "456" }).encode("utf-8") req = urllib.request.Request(posturl,shuju) #Request()提交post請求,參數1是url地址,參數2是封裝的表單數據 html = urllib.request.urlopen(req).read().decode("utf-8") #獲取post請求返回的頁面 print(html)
【轉載自:http://www.leiqiankun.com/?id=49】
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/44039.html
摘要:百度云搜索搜網盤如果爬蟲沒有異常處理,那么爬行中一旦出現錯誤,程序將崩潰停止工作,有異常處理即使出現錯誤也能繼續執行下去常見狀態碼重定向到新的,永久性重定向到臨時,非永久性請求的資源未更新非法請求請求未經授權禁止訪問沒找到對應頁面服務器內部 【百度云搜索:http://www.lqkweb.com】 【搜網盤:http://www.swpan.cn】 如果爬蟲沒有異常處理,那么爬行中一...
摘要:下面我們傳入多個參數構建一個來感受一下在這里我們通過四個參數構造了一個,即請求,在中指定了和,傳遞的參數用了和方法來轉成字節流,另外指定了請求方式為。運行結果如下通過觀察結果可以發現,我們成功設置了,以及。用于處理重定向。 上一篇文章:Python3網絡爬蟲實戰---19、代理基本原理下一篇文章:Python3網絡爬蟲實戰---21、使用Urllib:處理異常 學習爬蟲,最初的操作便...
摘要:隨后,為了保險,重啟,火狐瀏覽器也重啟一下,然后開始抓的包,此時你會發現你的連接并不安全等類似提示已經消失,并且已經能夠抓包了。 【百度云搜索,搜各種資料:http://www.bdyss.com】 【搜網盤,搜各種資料:http://www.swpan.cn】 封裝模塊 #!/usr/bin/env?python #?-*-?coding:?utf-8?-*- import?urll...
摘要:百度云搜索搜網盤淘寶券使用代理格式化,第一個參數,請求目標可能是或者對應設置初始化將代理設置成全局當使用請求時自動使用代理引入隨機模塊文件格式化注意第一個參數可能是或者,對應設置初始化將代理設置成全局當使用請求時自動使用代理請求 【百度云搜索:http://bdy.lqkweb.com】 【搜網盤:http://www.swpan.cn】 【淘寶券:http://www.tbquan....
摘要:比如我們以知乎為例,直接利用來維持登錄狀態。測試后,發現同樣可以正常登錄知乎。上一篇文章網絡爬蟲實戰基本使用下一篇文章網絡爬蟲實戰正則表達式 上一篇文章:Python3網絡爬蟲實戰---24、requests:基本使用下一篇文章:Python3網絡爬蟲實戰---26、正則表達式 在前面一節我們了解了 Requests 的基本用法,如基本的 GET、POST 請求以及 Response...
閱讀 3280·2023-04-26 02:42
閱讀 791·2021-10-09 09:41
閱讀 3191·2021-09-06 15:02
閱讀 700·2019-08-26 10:45
閱讀 480·2019-08-23 15:53
閱讀 733·2019-08-22 18:10
閱讀 550·2019-08-22 18:01
閱讀 3517·2019-08-22 17:34