python爬蟲基礎之urllib
urllib
urllib 是 Python 標準庫中用於網路請求的庫。該庫有四個模組,分別是urllib.request
,urllib.error
,urllib.parse
,urllib.robotparser
。
-
獲取網頁原始碼:
urllib.request.urlopen(url)
-
資料需要字串型別:
decode('utf-8')
-
資料需要bytes型別:
encode('utf-8')
-
網址拼接引數有漢字的,對漢字進行轉義:
urllib.parse.quote(url,safe=string.printable)
-
拼接多個引數的:用字典來新增引數:
params = { 'wd': '中文', 'key': 'hello', 'value': 'world' }
-
對引數中包含漢字的進行轉譯:
str_params = urllib.parse.urlencode(params)
-
新增header
-
建立請求物件:
urllib.request.Request(url)
-
新增header:
request.add_header("User-Agent","Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36")
-
-
選擇User-Agent,模擬瀏覽器進行爬蟲
-
新增agent_list陣列
user_agent_list = [ "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.163 Safari/535.1", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0) Gecko/20100101 Firefox/6.0", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50", "Opera/9.80 (Windows NT 6.1; U; zh-cn) Presto/2.9.168 Version/11.50" ]
-
利用random選擇agent_list陣列中的一個
random_user_agent = random.choice(user_agent_list)
-
請求url:
request = urllib.request.Request(url)
-
新增User-Agent資訊:
request.add_header("User-Agent",random_user_agent)
-
獲取網頁原始碼:
response = urllib.request.urlopen(request)
-
利用urllib實現代理功能
原因:系統的urllib並沒有新增代理的功能所以需要我們自己定義這個功能
-
建立自己handler:
handler = urllib.request.HTTPHandler()
-
建立自己的openner:
openner = urllib.request.build_opener(handler)
-
用自己的openner請求資料:
response = openner.open(url)
-
新增代理
-
新增代理:
proxy = { "http": "127.0.0.1:80" }
-
建立代理handler:
proxy_handler = urllib.request.ProxyHandler(proxy)
-
建立代理openner:
openner = urllib.request.build_opener(proxy_handler)
-
利用代理openner請求資料:
response = openner.open(url)
-
相關文章
- python爬蟲常用庫之urllib詳解Python爬蟲
- Python爬蟲基礎之seleniumPython爬蟲
- python urllib 基礎之 3Python
- Python:基礎&爬蟲Python爬蟲
- Python爬蟲進階之urllib庫使用方法Python爬蟲
- python爬蟲基礎概念Python爬蟲
- python_爬蟲基礎Python爬蟲
- Python爬蟲之Scrapy學習(基礎篇)Python爬蟲
- 【0基礎學爬蟲】爬蟲基礎之資料儲存爬蟲
- 【0基礎學爬蟲】爬蟲基礎之檔案儲存爬蟲
- 爬蟲入門基礎-Python爬蟲Python
- Python 爬蟲十六式 - 第二式: urllib 與 urllib3Python爬蟲
- Python分散式爬蟲(三) - 爬蟲基礎知識Python分散式爬蟲
- Python爬蟲之路-爬蟲基礎知識(理論)Python爬蟲
- python爬蟲之Beautiful Soup基礎知識+例項Python爬蟲
- python urllib 基礎 get ajaxPython
- python網路爬蟲(9)構建基礎爬蟲思路Python爬蟲
- 【0基礎學爬蟲】爬蟲基礎之自動化工具 Pyppeteer 的使用爬蟲
- 【0基礎學爬蟲】爬蟲基礎之自動化工具 Playwright 的使用爬蟲
- 【0基礎學爬蟲】爬蟲基礎之自動化工具 Selenium 的使用爬蟲
- 【0基礎學爬蟲】爬蟲基礎之網路請求庫的使用爬蟲
- JB的Python之旅-爬蟲篇--urllib和Beautiful SoupPython爬蟲
- 爬蟲基礎爬蟲
- python爬蟲基礎與http協議Python爬蟲HTTP協議
- 爬蟲-urllib模組的使用爬蟲
- 爬蟲基礎---1爬蟲
- 爬蟲基礎篇爬蟲
- 學爬蟲,我需要掌握哪些Python基礎?爬蟲Python
- Python爬蟲基礎-01-帶有請求引數的爬蟲Python爬蟲
- 爬蟲中網路請求的那些事之urllib庫爬蟲
- Python爬蟲之BeautifulSoupPython爬蟲
- [Python3網路爬蟲開發實戰] 2-爬蟲基礎 2-網頁基礎Python爬蟲網頁
- 爬蟲基礎知識爬蟲
- Python零基礎爬蟲教學(實戰案例手把手Python爬蟲教學)Python爬蟲
- Python 爬蟲零基礎教程(1):爬單個圖片Python爬蟲
- 爬蟲-urllib3模組的使用爬蟲
- 爬蟲(1) - 爬蟲基礎入門理論篇爬蟲
- python爬蟲之JS逆向Python爬蟲JS