呵呵呵175 2022-08-17 20:13 采纳率: 66.7%
浏览 134
已结题

python爬虫爬小说时,爬了一百多张就会报错,从新启动后爬取速度变慢了

python爬虫爬小说时,爬了一百多张就会报错,从新启动后爬取速度变慢了

以下是全部代码

import requests
from lxml import etree
import time
from random import randint as rd

bookpath = r"books/"
bookname = "超级作死宝箱系统3"
bookurl = "http://www.777zw.net/30/30031/"
weburl = "http://www.777zw.net/30/30031/"
user_agent= "Mozilla/5.0 (Windows NT 5.1; WOW64) AppleWebKit/561.3 (KHTML, like Gecko) Chrome/21.0.1262.89 Safari/561.3"

headers = {
"Referer": bookurl,
"User-Agent": user_agent,
'Connection': 'close'
}

requests.DEFAULT_RETRIES = 20
s = requests.session()
s.keep_alive = False
def get_urls():
url = bookurl
response = requests.get(url, headers=headers, verify=False)
response.encoding = 'utf-8'
html = etree.HTML(response.text)

# 所有章节的url列表

url_list = [weburl + x for x in html.xpath('//li[@class="book-item"]/a/@href')]

print(f'{len(url_list)}')

    return url_list

def get_text(url):
rep = requests.get(url, headers=headers, verify=False)
rep.encoding = 'utf-8'
dom = etree.HTML(rep.text)
# 获取章节名weixin_38616018
name = dom.xpath('//h1[@class="title"]/text()')[0]
#获取章节内小说
text = dom.xpath('//div[@id="content"][@class="content"]/p/text()')
#写入txt文档
with open(bookpath + bookname + '.txt', mode='a', encoding='utf-8') as f:
f.write('\n'+ name + '\n')
for con in text:
f.write(' ' + con + '\n')
print(f'{name} ===> 下载完成')

def main():
urls = get_urls()
for url in urls:
get_text(url)
# 随机时间
c = rd(1000, 3000) / 1000
print(c)
time.sleep(c)

if name == 'main':
main()

基本会报错Max retries exceeded with url,有多次直接停止不动(不报错),加了timeout = 60 后就会报时间过长

尝试过random请求头,效果并不理想。每次重新启动有时能跑起来,有时直接停止不动。

我想要能一次性下载完

  • 写回答

5条回答 默认 最新

查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 8月26日
  • 已采纳回答 8月18日
  • 创建了问题 8月17日

悬赏问题

  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分
  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题