# 爬取豆瓣电影Top250的10页网页,每页保存在一个.txt文件中,文件在"step1/webpages"文件夹中。 # 注意把爬取的网页保存在文件中,后面分析用,不要重复多次爬取,防止IP被封。 # 请勿修改已有的代码 import requests import os import shutil url='https://movie.douban.com/top250?start=' def getPage(url, i): try: ## 请在下面补充代码,完成网页代码获取及保存为txt文件。需要完成: # 1、构造完整的网页 url # 2、模拟浏览器头部信息 # 3、获取响应信息 r # 4、构造完整的保存目录及文件名 path,如:step1/webpages/page0.txt 等 # ********* Begin *********#
时间: 2023-08-04 18:05:09 浏览: 192
```python
import requests
import os
import shutil
url = 'https://movie.douban.com/top250?start='
def getPage(url, i):
# 构造完整的网页 url
page_url = url + str(i)
# 模拟浏览器头部信息
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
# 获取响应信息 r
response = requests.get(page_url, headers=headers)
html = response.text
# 构造完整的保存目录及文件名 path,如:step1/webpages/page0.txt 等
folder_path = 'step1/webpages'
if not os.path.exists(folder_path):
os.makedirs(folder_path)
file_name = 'page{}.txt'.format(i)
file_path = os.path.join(folder_path, file_name)
# 保存网页源代码到本地文件
with open(file_path, 'w', encoding='utf-8') as f:
f.write(html)
print('Page {} saved successfully.'.format(i))
# 防止请求过于频繁被反爬虫封禁IP,暂停1秒钟再返回
time.sleep(1)
# 爬取前10页网页并保存到本地文件
for i in range(10):
getPage(url, i * 25)
```
在上面的代码中,我们使用了Python的os库和shutil库来创建保存网页源代码的文件夹,以及构造保存网页源代码的文件名和路径。我们还使用了requests库来发送网络请求获取网页源代码,并使用了time库来暂停1秒钟,防止请求过于频繁被反爬虫封禁IP。最后,我们使用了文件操作来保存网页源代码到本地文件。
阅读全文