1. 程式人生 > >urllib基礎-利用網站結構爬取網頁-百度搜索

urllib基礎-利用網站結構爬取網頁-百度搜索

ont 獲取網頁 不能 style 其中 baidu TP bsp 拼接

  有的時候爬取網頁,可以利用網站額結構特點爬取網頁

  在百度搜索框中輸入搜索內容,單擊搜索,瀏覽器會發送一個帶有參數的url請求。嘗試刪除其中的一些參數,只剩下wd這個參數。發現wd是搜索內容。這樣程序可以根據不同的wd值,請求不同的網頁。

  

 1 from urllib import request,parse
 2 
 3 # 構造請求對象
 4 def baidu(wd):
 5     # 爬取的網頁
 6     base_url = http://www.baidu.com/s?
 7 
 8     qs = {
 9         wd : wd
10     }
11 12 # 進行url編碼 13 qs = parse.urlencode(qs) # wd=hello 14 15 # 構造請求對象 16 req = request.Request(base_url + qs) 17 18 # 發送請求 19 response = request.urlopen(req) 20 21 # 獲取網頁內容 22 html = response.read().decode(utf-8) 23 24 #打印網頁 25 print(html) 26 27 28 if __name__
== "__main__": 29 while True: 30 wd=input(請輸入要搜索的內容:) 31 if wd == q: #輸入 q 退出 32 break 33 baidu(wd) #下載網頁

瀏覽器中發送請求的url中包含漢字是不能請求成功的,需要將漢字進行url編碼。(可以在“站長工具”中在線編碼解碼)。

這裏使用parse.urlencode()進行url編碼。將編碼之後的內容與原url進行拼接,形成完整的url。

urllib基礎-利用網站結構爬取網頁-百度搜索