1#!/usr/bin/env python2#
-*- coding:utf-8 -*-
3from urllib import
request
4from random import
choice
5import
urllib.parse67
defloadpage(url, filename):
8'''
9作用:根據url,獲取響應檔案
10url: 需要爬取的位址
11filename: 處理的檔名
12'''
13 user_agents =[14"
mozilla/4.0 (compatible; msie 6.0; windows nt 5.1; sv1; acoobrowser; .net clr 1.1.4322; .net clr 2.0.50727)",
15"mozilla/4.0 (compatible; msie 7.0; windows nt 6.0; acoo browser; slcc1; .net clr 2.0.50727; media center pc 5.0; .net clr 3.0.04506)",
16"mozilla/4.0 (compatible; msie 7.0; aol 9.5; aolbuild 4337.35; windows nt 5.1; .net clr 1.1.4322; .net clr 2.0.50727)",
17"mozilla/5.0 (windows; u; msie 9.0; windows nt 9.0; en-us)",
18"mozilla/5.0 (compatible; msie 9.0; windows nt 6.1; win64; x64; trident/5.0; .net clr 3.5.30729; .net clr 3.0.30729; .net clr 2.0.50727; media center pc 6.0)",
19"mozilla/5.0 (compatible; msie 8.0; windows nt 6.0; trident/4.0; wow64; trident/4.0; slcc2; .net clr 2.0.50727; .net clr 3.5.30729; .net clr 3.0.30729; .net clr 1.0.3705; .net clr 1.1.4322)",
20"mozilla/4.0 (compatible; msie 7.0b; windows nt 5.2; .net clr 1.1.4322; .net clr 2.0.50727; infopath.2; .net clr 3.0.04506.30)",
21"",
22"",
23"mozilla/5.0 (windows; u; windows nt 5.1; en-us; rv:1.8.1.2pre) gecko/20070215 k-ninja/2.1.1",
24"mozilla/5.0 (windows; u; windows nt 5.1; zh-cn; rv:1.9) gecko/20080705 firefox/3.0 kapiko/3.0",
25"mozilla/5.0 (x11; linux i686; u;) gecko/20070322 kazehakase/0.4.5",
26"mozilla/5.0 (x11; u; linux i686; en-us; rv:1.9.0.8) gecko fedora/1.9.0.8-1.fc10 kazehakase/0.5.6",
27"",
28"",
29"opera/9.80 (macintosh; intel mac os x 10.6.8; u; fr) presto/2.9.168 version/11.52"30
]31 user_agent =choice(user_agents)
32print('
'+filename)
33 req =request.request(url)
34 req.add_header('
user-agent
',user_agent)
35return
str(request.urlopen(req).read(),encoding='utf-8')
36執行結果,檔案中儲存的資料,如下:37def
writepage(html, filename):
38'''
39作用: 將html寫入檔案
40html: 伺服器響應檔案內容
41'''
42print('
正在儲存
'+filename)
4344
#不需要做檔案關閉操作45#
等同於open /write /close
46 with open(filename,'
w',encoding='
utf-8
') as f:
47f.write(html)
48print('
-'*30)
4950
deftiebaspider(url, start, end):
51'''
52作用:貼吧爬蟲排程器, 負責處理每個頁面的url
53url: 貼吧url的前部分
54start: 起始頁
55end: 終止頁
56'''
57for page in range(start, end+1):
58 pn = (page-1)*50
5960 filename = '
第'+str(page)+'
頁.html'61
#該貼吧每一頁相對應的url
62 fulurl = url +"
&pn=
" +str(pn)
6364
#print(fulurl)
65 html =str(loadpage(fulurl, filename))
66writepage(html, filename)
6768
print('
thank you')
6970
#當.py檔案被直接執行時,if 之下的**塊將被執行
71if
__name__ == '
__main__':
72 url = '
'73 key = input('
please input keywords:')
74 beginpage = int(input('
please input start pagenum:'))
75 endpage = int(input('
please input end pagenum:'))
7677
#關鍵字轉碼
78 m =
79 keyword =urllib.parse.urlencode(m)80#
print(keyword)
81 fulurl = url +keyword
8283 tiebaspider(fulurl, beginpage, endpage)
存在亂碼問題!!!
Python爬蟲 獲取貼吧內容
參考寫的第乙個比較完整的python爬蟲程式。coding utf 8 import urllib import urllib2 import re 處理頁面標籤類 class tool 去除img標籤,7位長空格 removeimg re.compile 刪除超連結標籤 removeaddr re...
用正則獲取百度貼吧當日新貼
wget linux 下獲取 http頁面的工具 o 表示輸出到管道 而不是檔案 grep linux 正規表示式工具 p 使用 prel語法 o 只輸出匹配到的內容 而不是一行 p 0 9 首頁貼子的鏈結,格式為 a href p 3444444444 非貪婪匹配任意字元 j user card....
Python獲取html頁內容
乙個簡單的python獲取html頁面 版本說明 testing system os windows 7 python 3.7.2 tags v3.7.2 9a3ffc0492,dec 23 2018,22 20 52 msc v.1916 32 bit intel on win32 安裝模組 1....