urllib基礎-利用網站結構爬取網頁-百度搜索
阿新 • • 發佈:2018-06-24
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基礎-利用網站結構爬取網頁-百度搜索