利用python爬取百度贴吧的网页,输入贴吧名,起始页,终止页,爬取索要爬取的页面
贴吧
'''
import urllib.request
import urllib.parse
import time
import os
#输入贴吧名字-起始页码-终止页码
bname = input('请输入贴吧名字:')
start = int(input('请输入起始页码:'))
end = int(input('请输入终止页码:'))
#不完整的url
url = 'http://tieba.baidu.com/f?'
#通过循环获取拼接每一页的url,得到每一页的内容
for page in range(start,end+1):
pn = (page-1) * 50
#定义参数列表
data = {
'kw':bname,
'ie':'utf8',
'pn':pn
}
#将date转化为query_string
query_string = urllib.parse.urlencode(data)
#拼接url
new_url = url + query_string
#构建请求对象
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36'
}
request = urllib.request.Request(url=new_url,headers=headers)
#创建文件夹
if not os.path.exists(bname):
os.mkdir(bname)
#发送请求,得到响应
response = urllib.request.urlopen(request)
#生成文件名
filename ='%s-第%s页.html'%(bname,page)
filepath = os.path.join(bname,filename)
print('正在下载------%s'%filename)
#将内容写入到文件中
with open(filepath,'wb') as f:
f.write(response.read())
print('结束下载------%s' % filename)
time.sleep(3)