# 你很厉害
# 把老师的代码改了
# 居然改成功了
# 代码意思是爬取贴吧篮球区
# 按页抓取
'''
http://tieba.baidu.com/f/index/forumpark?cn=%E7%AF%AE%E7%90%83&ci=277&
pcn=%E4%BD%93%E8%82%B2%E8%BF%B7&pci=275&ct=&st=new&pn=1
中文翻译为
https://tieba.baidu.com/f/index/forumpark?cn=篮球&ci=277&pcn=体育迷&pci=275&
ct=0&rn=20&pn=1
'''
# 以上绿色是你要爬取的第一页
# pn=1代表第一页
# 运行时输入篮球
# 在输入3
from urllib.request import Request, urlopen
from urllib.parse import urlencode
from fake_useragent import UserAgent
def get_html(url):
headers = {
"User-Agent": UserAgent().chrome
}
request = Request(url, headers=headers)
response = urlopen(request)
print(response.read().decode())
return response.read()
def save_html(filename, html_bytes):
with open(filename, "wb") as f:
f.write(html_bytes)
def main():
content = input("请输入要下载的内容:")
pcn="体育迷"
num = input("请输入要下载多少页:")
base_url = "http://tieba.baidu.com/f/index/forumpark?{}"
for pn in range(int(num)):
#此处你可以在添加ci啊还有pcn啊
#但没有必要
#args就是传参数
#你可以使其更丰富更精确但没必要
#知道就行
args = {
"cn": content,
"ci": 277,
"pcn": pcn,
"pci": 275,
"ct": 0,
"rn": 20,
"pn": pn
}
filename = "第" + str(pn + 1) + "页.html"
args = urlencode(args)
print("正在下载" + filename)
# format针对base_url里的{}
# 即加到{}里面
html_bytes = get_html(base_url.format(args))
save_html(filename, html_bytes)
if __name__ == '__main__':
main()
上述两块代码是一起的
之前发文章只出现前半段代码,后半段不见了?
所以今天补上