鱼C论坛

 找回密码
 立即注册
查看: 1638|回复: 7

[已解决]笔趣阁小说爬取

[复制链接]
发表于 2021-9-8 18:09:06 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
import lxml
import requests
from bs4 import BeautifulSoup
#爬取小说所有的标题和章节
if __name__=='__main__':
    url = 'https://www.xbiquge.la/13/13959/'
    headers = {
        'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36'
    }

    #对首页数据进行爬取
    page_text1 = requests.get(url=url,headers=headers)
    page_text1.encoding = 'utf-8'
    page_text = page_text1.text
    #print(page_text)
    #在首页中解析出章节的标题和详情页的url
    #1.实例化BeautifulSoup对象,需要将页面源码数据加载到该对象
    soup = BeautifulSoup(page_text,'lxml')
    #解析章节标题和详情页的url
    dd_list = soup.select('.box_con > div > dl > dd')
    print(dd_list)
    fp = open('./shengxu.txt','w',encoding='utf-8')
    for dd in dd_list:
        title = dd.a.string
        detail_url = 'https://www.xbiquge.la/'+dd.a['href']
        #对详情页发起请求,解析出章节内容
        detail_text1 = requests.get(url=detail_url,headers=headers)
        detail_text1.encoding = 'utf-8'
        detail_text = detail_text1.text
        #解析出详情页中相关的章节内容
        detail_soup = BeautifulSoup(detail_text,'lxml')
        div_tag = detail_soup.find('div',id='content')
        #解析到章节的内容
        content = div_tag.text
        fp.write(title+':'+content+'\n')
        print(title,'爬取成功!')
出现如下问题怎么解决呀!Orz

                               
登录/注册后可看大图





最佳答案
2021-9-8 23:58:08
触发了反爬机制,每次爬取后间隔几秒。
我也写了一个,爬取几页后就出现你说的问题,加上sleep后就好了。
import requests
from bs4 import BeautifulSoup
import time
url = 'https://www.xbiquge.la/13/13959/'
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36'
}
res = requests.get(url = url, headers = headers)
res.encoding = 'utf-8'
soup = BeautifulSoup(res.text, 'html.parser')
s = soup.find_all('dd')
f= open('mybook.text', 'w', encoding = 'utf-8')
for each in s:
    title = each.a.text
    url = 'https://www.xbiquge.la' + each.a['href']
    res = requests.get(url = url, headers = headers)
    res.encoding = 'utf-8'
    soup = BeautifulSoup(res.text, 'html.parser')
    s1 = soup.find('div', id = 'content')
    f.write('=' * 20 + '\n' + title + '\n' + '=' * 20 + '\n')
    f.write(s1.text + '\n')
    print(title, '爬取成功!')
    time.sleep(2)
f.close()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-9-8 20:23:28 | 显示全部楼层
第二章 后文明时代 爬取成功!
第三章 青铜昆仑 爬取成功!
第四章 奇树与猛兽 爬取成功!
第五章 花开 爬取成功!
第六章 石盒 爬取成功!
第七章 异变 爬取成功!
第八章 世界变了 爬取成功!
第九章 惊悚 爬取成功!
第十章 剧变 爬取成功!
第十一章 到家 爬取成功!
第十二章 太行神山 爬取成功!
第十三章 不属于此界 爬取成功!
第十四章 牛魔王 爬取成功!
第十五章 神秘呼吸法 爬取成功!
Traceback (most recent call last):
  File "D:/jiaoben/HSV-detection--HSV-Range-Find--mole-main/main.py", line 35, in <module>
    content = div_tag.text
AttributeError: 'NoneType' object has no attribute 'text'

错误如上
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-8 20:36:34 From FishC Mobile | 显示全部楼层
仝仝仝 发表于 2021-9-8 20:23
第二章 后文明时代 爬取成功!
第三章 青铜昆仑 爬取成功!
第四章 奇树与猛兽 爬取成功!

看一下第16章,应该是元素构成和其他章不一样
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-8 23:58:08 | 显示全部楼层    本楼为最佳答案   
触发了反爬机制,每次爬取后间隔几秒。
我也写了一个,爬取几页后就出现你说的问题,加上sleep后就好了。
import requests
from bs4 import BeautifulSoup
import time
url = 'https://www.xbiquge.la/13/13959/'
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36'
}
res = requests.get(url = url, headers = headers)
res.encoding = 'utf-8'
soup = BeautifulSoup(res.text, 'html.parser')
s = soup.find_all('dd')
f= open('mybook.text', 'w', encoding = 'utf-8')
for each in s:
    title = each.a.text
    url = 'https://www.xbiquge.la' + each.a['href']
    res = requests.get(url = url, headers = headers)
    res.encoding = 'utf-8'
    soup = BeautifulSoup(res.text, 'html.parser')
    s1 = soup.find('div', id = 'content')
    f.write('=' * 20 + '\n' + title + '\n' + '=' * 20 + '\n')
    f.write(s1.text + '\n')
    print(title, '爬取成功!')
    time.sleep(2)
f.close()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-9 00:54:29 | 显示全部楼层
加time.sleep
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-9-9 09:56:21 | 显示全部楼层
冬雪雪冬 发表于 2021-9-8 23:58
触发了反爬机制,每次爬取后间隔几秒。
我也写了一个,爬取几页后就出现你说的问题,加上sleep后就好了。
...

确实是加上就好了,万分感谢Orz
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-9-9 09:57:44 | 显示全部楼层

感谢感谢Orz
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-9 11:43:42 | 显示全部楼层
膜拜····
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-13 07:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表