ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 5251|回复: 28

[求助] 抓取复制网站上的小说

[复制链接]

TA的精华主题

TA的得分主题

发表于 2019-5-14 11:05 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 相见是缘8 于 2019-5-14 15:40 编辑

求老师写一个能逐页抓取复制该网站上整部小说的宏,谢谢!
小说网址:https://www.ddshubao.com/book/1221/254297.html



补充内容 (2019-5-23 08:06):
哈哈!问题圆满解决了!
   真是“孤陋寡闻”,昨天才听一朋友说:网上早就有多种“傻瓜式”的免费采集软件,该类软件可以采集绝大多数网页上各类的数据。随便下了一款“八爪鱼采集器”,网上看一下它的有关教程...

补充内容 (2019-5-23 08:08):
采集一部约70万字(共335章、每章2页)的小说,也就5~6分钟的时间,一字不漏且按顺序排列,真是捧极了!
   问题需然是用软件解决了,但还是要感谢各位老师的帮助!真心感谢!

TA的精华主题

TA的得分主题

发表于 2019-5-15 10:13 来自手机 | 显示全部楼层
这是网络爬虫范畴了。论坛有贴,只能慢慢学了。

TA的精华主题

TA的得分主题

发表于 2019-5-15 22:22 | 显示全部楼层
  1. # version: Python 3.7.0
  2. import requests,parsel,os

  3. headers = {'User-Agent': '(KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36'}
  4. host_url = 'https://www.ddshubao.com'

  5. def get_total_url():
  6.     r = requests.get(url=f'{host_url}/book/1221/', headers=headers,verify=False)
  7.     li_list = parsel.Selector(r.content.decode('gb18030')).css('#allchapter li')
  8.     for li_url in li_list:
  9.         get_Article(li_url.css('a::attr(href)').get())

  10. def get_Article(url):
  11.     r = requests.get(url=f'{host_url}{url}', headers=headers,verify=False)
  12.     tem_str = r.content.decode('gb18030')
  13.     parse_Article(tem_str)
  14.     down = parsel.Selector(tem_str).xpath('//div[@class="content-nav down"]/a[last()]/text()').get()
  15.     if down == "下一页":
  16.         next_url = parsel.Selector(tem_str).xpath('//div[@class="content-nav down"]/a[last()]/@href').get()
  17.         r = requests.get(url=f'{host_url}{next_url}', headers=headers, verify=False)
  18.         parse_Article(r.content.decode('gb18030'))

  19. def parse_Article(text):
  20.     sel = parsel.Selector(text).css('div.readbox')
  21.     temp = sel.xpath("h1/text()").getall()
  22.     temp.extend(sel.xpath("./div[@class='content']/text()").getall())
  23.     tem_str = '\n'.join(temp)
  24.     file_pointer.write(f"{tem_str}\n")

  25. if __name__ == '__main__':
  26.     path_file = r'D:\result.txt'#自定义txt文件!!!
  27.     if os.path.isfile(path_file): os.remove(path_file)
  28.     file_pointer = open(path_file, 'w',encoding='utf-8')
  29.     file_pointer.write('绝魔之地狱之门\n')
  30.     get_total_url()
  31.     file_pointer.close()
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-5-16 06:44 | 显示全部楼层
duquancai 发表于 2019-5-15 10:13
这是网络爬虫范畴了。论坛有贴,只能慢慢学了。

感谢老师回复!这个凭我目前的水平一下掌握不了,期待有懂这个的老师出手帮忙!

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-5-16 08:55 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

老师、刚看到这个代码(早上回复时没注意),这个代码要怎么用?还请指教!谢谢!

TA的精华主题

TA的得分主题

发表于 2019-5-16 09:10 来自手机 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
相见是缘8 发表于 2019-5-16 08:55
老师、刚看到这个代码(早上回复时没注意),这个代码要怎么用?还请指教!谢谢!

学习Python语言

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-5-16 10:40 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2019-5-16 12:30 来自手机 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
相见是缘8 发表于 2019-5-16 10:40
谢谢!可这个对我太难了!

世上无难事,只怕有心人

TA的精华主题

TA的得分主题

发表于 2019-5-16 14:16 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
相见,杜老师 的意思是让你安装 version: Python 3.7.0(网络搜索下载安装一个) ,然后再应用该宏即可,我想。

TA的精华主题

TA的得分主题

发表于 2019-5-16 14:20 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-25 00:08 , Processed in 0.043671 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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