实验目的
- 熟练掌握requests库中get方法的使用
- 掌握利用requests库爬取多页网页内容的方法
2.1 爬取百度贴吧与某主题相关的帖子,并将爬取到的内容保存到文件中(爬取多页)
import requests
def get_page(url):
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.100 Safari/537.36'}
try:
r = requests.get(url, headers=headers)
r.raise_for_status() #如果状态不是200,引发异常
r.encoding = 'utf-8'
return r.text
except:
return "产生异常"
def save_page(html,filename):
with open(filename, 'w', encoding='utf-8') as f:
f.write(html)
print(filename + '保存成功!')
if __name__ =='__main__':
kw = input('请输入要爬取的主题名:')
begin = int(input('请输入起始页:'))
end = int(input('请输入结束页:'))
url = 'https://tieba.baidu.com/f/user/json_userinfo?_=1583490085833'
for i in range(begin, end+1):
full_url = url + '?kw={}&pn={}'.format(kw,50*(i-1))
html = get_page(full_url)
filename = '第{}页.html'.format(i)
save_page(html, filename)
试验报告:
爬取百度贴吧与“肖战”相关的帖子,共爬取三页。
结果保存在文件夹中
2.2 在京东搜索某类商品信息,并将搜索结果的网页内容爬取下来保存到文件中(任意爬取多页)
import requests
import re
import xlwt
import datetime
from bs4 import BeautifulSoup
def getHtmlText(url