吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3830|回复: 6
收起左侧

[Python 转载] 一个网站的小说爬取

[复制链接]
Limit-fly 发表于 2020-3-31 23:21
本帖最后由 Limit-fly 于 2020-3-31 23:21 编辑

最近学习爬虫,发现大部分的都是爬图片的,爬小说的很少,所以我分享一个爬小说的。
当然,爬图片的也有,想要的可以私信我一个小说网站的小说爬取,示例的是晚明这本小说,测试无误。
这个爬取模板适用这个网站的所有小说,只需更换一下对应的小说目录地址即可。
源码均注释了每一步的操作用途,有需要的小伙伴可以自取。
以下为代码部分
[Python] 纯文本查看 复制代码
import requests
import re
from bs4 import BeautifulSoup
from lxml import etree


cookies = {
    '__cfduid': 'dd0324475e57064a9b28791ba932b20c41585493290',
    'Hm_lvt_3a0ea2f51f8d9b11a51868e48314bf4d': '1585493293',
    'Hm_lpvt_3a0ea2f51f8d9b11a51868e48314bf4d': '1585493368',
}

Headers = {
    'Connection': 'keep-alive',
    'Cache-Control': 'max-age=0',
    'Upgrade-Insecure-Requests': '1',
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36',
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
    'Referer': 'http://www.xiaoshuo240.cn/cbxs240_rank.html',
    'Accept-Language': 'zh-CN,zh;q=0.9',
}

#获取当前session
session = requests.Session()
#头信息放入session中
session.headers.update(Headers)
#解决警告
requests.packages.urllib3.disable_warnings()
#发送请求
response = session.get('http://www.xiaoshuo240.cn/cbxs240/21046/', verify=False)
# print(response)
#获取网页信息
html_doc = BeautifulSoup(response.text,'lxml')
# print(html_doc)
#获取所有的章节list信息
dl_doc = html_doc.find('div',id = 'list')
# 提取章节的url
my_info = re.findall(r'href="(.*?)"',str(dl_doc))

# print(my_info)

url_stl = 'http://www.xiaoshuo240.cn'

#打开文件准备写入小说内容
tx =open('晚明.txt', 'a+', encoding='utf-8')
#遍历整个小说章节url
for page_a in my_info[8:]:
    url_page = url_stl+page_a
    print(url_page)
    #清除警告
    requests.packages.urllib3.disable_warnings()
    #对章节网页发起请求
    response = session.get(url_page,verify=False)
    # 获取网页信息
    html_doc = etree.HTML(response.text)
    #获取div节点中id=content的div对应的文本信息
    #获取章节标题
    h1_title = html_doc.xpath('string(//h1)')
    #标题写入文件
    # tx =open('晚明.txt', 'a+', encoding='utf-8')
    tx.write(str(h1_title) + '\n\r\n\r')

    print(h1_title)
    text = html_doc.xpath('string(//div[@id="content"])')
    #对文本内容空格进行换行操作
    result_txt = str(text).replace('    ', '\n')
    print(result_txt)
    # 内容写入文件
    # with open('晚明.txt', 'a+', encoding='utf-8') as tx:
    tx.write(result_txt+'\n\r\n\r')
tx.close()

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

自在小鱼 发表于 2020-3-31 23:51
感谢分享
林浩棉 发表于 2020-4-1 01:58
NingXIU 发表于 2020-4-1 07:28
老朽不老 发表于 2020-4-1 07:53
感谢分享
tjlba 发表于 2020-4-1 10:57
谢谢分享!
vagrantear 发表于 2020-4-1 11:07
过来研究下代码,感谢分享。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-17 04:58

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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