python爬虫——爬取小说

一、导入requests和parsel库

requests是一个HTTP请求库,像浏览器一样发送THHP请求来获取网站信息。

parsel是对 HTML 和 XML 进行解析库,

import requests
import parsel

二、获取小说网站内容

通过 url = “https://www.777zw.net/1/1429/” 爬取小说网站内容。

url = "https://www.777zw.net/1/1429/"
response = requests.get(url)
responses = response.text.encode('iso-8859-1').decode('gbk')
print(responses)

在爬取小说网站时遇见一个错误爬取中文编译乱码:

之后查找资料发现是由于网页编码用的方式不同 :

解决方法

查看网站所用编码方法,打开想爬取页面开启开发人员工具,在控制台输入document.charse查看文本格式

将常规的 “utf-8” 格式转换成 “gbk”

# utf-8格式
response.encoding = 'utf-8'  
# 改成gbk格式
response.text.encode('iso-8859-1').decode('gbk')

获取网页内容代码:

url = "https://www.777zw.net/1/1429/"
response = requests.get(url)
responses = response.text.encode('iso-8859-1').decode('gbk')
print(responses)

三、获取小说名和获取小说章节

在开发者工具中找到小说名:

爬取方法

selector = parsel.Selector(responses)
novel_name = selector.css('#info h1::text').get() #小说名

#info 获取 id 是 info,h1 存取小说名,小说名是文本文件所以用text

找到小说章节

爬取代码

href = selector.css('#list dd a::attr(href)').getall() #小说章节

get() 获取一个,getall() 获取所有小说章节

四、获取章节名和小说内容

这一步原理和步骤一样就不多赘述了

五、源代码

import requests
import parsel
url = "https://www.777zw.net/1/1429/"
response = requests.get(url)
responses = response.text.encode('iso-8859-1').decode('gbk')
print(responses)
selector = parsel.Selector(responses)
novel_name = selector.css('#info h1::text').get() #小说名
href = selector.css('#list dd a::attr(href)').getall() #小说章节
for link in href:
    link_url = 'https://www.777zw.net/1/1429/' + link
    response_1 = requests.get(link_url)
    responses_1 = response_1.text.encode('iso-8859-1').decode('gbk')
    selecter_1 = parsel.Selector(responses_1)
    title_name = selecter_1.css('.bookname h1::text').get() #小说章节
    content_list = selecter_1.css('#content::text').getall() #小说内容
    content = '
'.join(content_list)
    break
    # 保存
    with open(novel_name + '.txt',mode = 'a',encoding = 'utf-8') as f:
        f.write(title_name)
        f.write('
')
        f.write(content)
        f.write('
')
        # print(title_name)
print(novel_name)
print(content_list)

六、结果

先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级Python工程师,想要升技能,往往是需要自己摸索成长或是报班学习。

Python这个类目无论是功能性、还是上手程度都碾压其他语言,作为最适合零基础入门的编程语言,想要学习自然不能纸上谈兵,还得沉下心来深入的研究和学习。

只告诉大家学什么但是不给予方向的行为无异于耍流氓,这里也是分享我多年收藏的技术干货,可以共享给喜欢我文章的朋友们,如果你肯花时间沉下心去学习,它们一定能帮到你,干货内容包括:
在这里插入图片描述

上述这份完整版的Python全套学习资料已经上传CSDN官方,如果需要可以微信扫描下方CSDN官方认证二维码 即可领取

👉[[CSDN大礼包:《python安装包&全套学习资料》免费分享]]安全链接,放心点击

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用Python爬取HTTPS网页,可以使用urllib库中的urlopen函数。在引用\[1\]中的示例中,使用了urllib.request模块中的Request和urlopen函数来发送HTTPS请求。首先,需要导入相关的模块和库,如urllib.request和ssl。然后,定义要爬取的网址和请求头信息。接下来,创建一个Request对象,并传入网址和请求头信息。最后,使用urlopen函数发送请求并获取响应数据。可以使用response.read()方法来读取响应数据。在引用\[2\]和引用\[3\]中也提供了其他的示例代码,可以根据具体需求选择合适的方法来爬取HTTPS网页。 #### 引用[.reference_title] - *1* [python爬虫——https请求](https://blog.csdn.net/Python_allthing/article/details/122877010)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Python做简单爬虫(urllib.request怎么抓取https以及伪装浏览器访问的方法)](https://blog.csdn.net/weixin_30583563/article/details/97115437)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值