大马强 发表于 2021-4-19 00:44:57

爬取百度小说时遇到的问题

本帖最后由 大马强 于 2021-4-19 00:46 编辑

已经爬取到文本所在点我url,但是却是乱码,用了百度上的方法还是处理不了
代码奉上
# 爬取 https://boxnovel.baidu.com/ 的小说西游记
# 发起请求,拿到页面的html代码
# 从上面的html的源代码中找到不同章节的url
# 对上面的拿到url发起请求去获得数据
# 对数据进行永久化保存
import requests

# 抓包过程中发现 参数 pageNum 的值是变化的 为【1,2,3】
# 使用循环来将本书章节的包全部爬到,发起请求
# https: // novelapi.baidu.com/novelopenapi/legal/content?app_code = wise_novel & sign = 5eebc17759205623c5aa3b4e61bec1df & time = 1618747010621 & book_id = 4306063500 & chapter_id = 11348571

for pagenum in range(1, 4):
    book_url = f"https://boxnovel.baidu.com/boxnovel/wiseapi/chapterList?bookid=4306063500&pageNum={pagenum}&order=asc&site="
    book_html = requests.get(book_url)
    for each in book_html.json()['data']["chapter"]["chapterInfo"]:
      c_id = each["chapter_id"]
      title = each["chapter_title"]# 取得c_jd
      chapter_url = f"https://novelapi.baidu.com/novelopenapi/legal/content?app_code=wise_novel&sign=5eebc17759205623c5aa3b4e61bec1df&time=1618747010621&book_id=4306063500&chapter_id={c_id}"

      chapter_html = requests.get(chapter_url)
      try:
            text_url = chapter_html.json()['data']['url'] #请求小说文本所在URL
      except:
            PASS
      else:
            text = requests.get(text_url)
            print(text.text)

我觉得那个小说的文本应该就在这里,但是我还是无法将它处理,求求大佬指点

一只魈咸鱼 发表于 2021-4-19 00:44:58

加你好友了,私下给你说

yuxijian2020 发表于 2021-4-19 09:34:08

你这个网页我在浏览器都打不开,不过我运行了下你的代码,返回的内容二进制里面居然有双引号括号什么的。。。可能是加密了吧

qq1151985918 发表于 2021-4-19 09:51:32

你把网站发一下吧,因为我打开你现在写的代码中的网站就是一团乱码

大马强 发表于 2021-4-19 12:31:05

qq1151985918 发表于 2021-4-19 09:51
你把网站发一下吧,因为我打开你现在写的代码中的网站就是一团乱码

https://boxnovel.baidu.com/boxnovel/detail?gid=4306063500&data=%7B%22fromaction%22%3A%22dushu%22%7D

大马强 发表于 2021-4-19 12:31:55

yuxijian2020 发表于 2021-4-19 09:34
你这个网页我在浏览器都打不开,不过我运行了下你的代码,返回的内容二进制里面居然有双引号括号什么的。。 ...

我感觉应该是被加密了,但我是跟着视频做的

大马强 发表于 2021-4-19 12:33:03

https://www.bilibili.com/video/BV1i54y1h75W?p=67
B站上的

大马强 发表于 2021-4-19 12:33:37

有些东西和上面的不一样了{:10_277:}

yuxijian2020 发表于 2021-4-19 13:18:41

大马强 发表于 2021-4-19 12:31
我感觉应该是被加密了,但我是跟着视频做的

本身爬虫的生命周期就很短,你这个小说网站我都登不上去了怎么分析{:10_277:}

大马强 发表于 2021-4-19 15:21:31

yuxijian2020 发表于 2021-4-19 13:18
本身爬虫的生命周期就很短,你这个小说网站我都登不上去了怎么分析

就是百度小说
http://dushu.baidu.com/?data={%22fromaction%22:%22aladdincard%22}&source=aladdincard

TC_DHL 发表于 2021-4-19 22:48:40

你爬的页面是utf-8编码,不考虑下转码的问题么

大马强 发表于 2021-4-20 00:09:41

TC_DHL 发表于 2021-4-19 22:48
你爬的页面是utf-8编码,不考虑下转码的问题么

我在其他的地方看到这个方式
# 打印出所请求页面返回的编码方式
    print(response.encoding)
    # response.apparent_encoding是通过内容分析出的编码方式,这里是urf-8
    print(response.apparent_encoding)
    # 转码
    content = response.text.encode(response.encoding).decode(response.apparent_encoding)
但我的 response.apparent_encoding 是none 就算我硬生生加入"utf-8"也没用{:10_277:}

大马强 发表于 2021-4-20 00:10:15

大马强 发表于 2021-4-20 00:09
我在其他的地方看到这个方式

但我的 response.apparent_encoding 是none 就算我硬生生加入"utf-8"也没 ...

大佬支支招

TC_DHL 发表于 2021-4-20 02:40:55

大马强 发表于 2021-4-20 00:10
大佬支支招

我也是彩笔... 我试试嗷

TC_DHL 发表于 2021-4-20 03:28:22

TC_DHL 发表于 2021-4-20 02:40
我也是彩笔... 我试试嗷

看了下 不会{:10_277:}
告辞!!!{:10_299:}

大马强 发表于 2021-4-20 08:52:35

TC_DHL 发表于 2021-4-20 03:28
看了下 不会
告辞!!!

{:10_266:}

大马强 发表于 2022-3-19 22:46:48

一只魈咸鱼 发表于 2021-4-19 00:44
加你好友了,私下给你说

我都忘记我有这个提问了,那就麻烦哥哥了
页: [1]
查看完整版本: 爬取百度小说时遇到的问题