AlcoSoul 2021-09-15 13:49 采纳率: 75%
浏览 65
已结题

爬虫程序返回值只有中文是乱码

刚刚学完bs4想试一下爬取网络小说,但试了好久都是那两个错误,实在找不到什么原因
一个就是输出标签的时候中文乱码
还有一个:

  File "", line 27, in <module>
  content = div_tag.text
  AttributeError: 'NoneType' object has no attribute 'text'
import requests
from bs4 import BeautifulSoup
import lxml
#爬取所有的章节标题和章节内容https://www.xbiquge.la/13/13959/
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/92.0.4515.159 Safari/537.36'
    }
    page_text = requests.get(url=url,headers=headers).text
    #在首页中解析章节标题和详情页的url
    #实例化BeautifulSoup对象
    soup = BeautifulSoup(page_text,'lxml')
    #print(soup)
    #解析章节标题
    dd_list = soup.select('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_data_text = requests.get(url=detail_url,headers=headers).text
        #解析出详情页中的内容
        detail_soup = BeautifulSoup(detail_data_text,'lxml')
        div_tag = detail_soup.find('dic',id='content')
        content = div_tag.text
        fp.write(title+':'+content+'\n')
        print(title,'!!!')
  • 写回答

2条回答 默认 最新

  • 考古学家lx(李玺) python领域优质创作者 2021-09-15 14:45
    关注

    帮你修改了下

    
    import requests
    from bs4 import BeautifulSoup
    #爬取所有的章节标题和章节内容
    # https://www.xbiquge.la/13/13959/
    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/92.0.4515.159 Safari/537.36'
        }
        page_text = requests.get(url=url,headers=headers).content.decode('utf-8')
        #在首页中解析章节标题和详情页的url
        #实例化BeautifulSoup对象
        soup = BeautifulSoup(page_text,'lxml')
        #print(soup)
        #解析章节标题
        dd_list = soup.select('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_data_text = requests.get(url=detail_url,headers=headers).text
            #解析出详情页中的内容
            detail_soup = BeautifulSoup(detail_data_text,'lxml')
            div_tag = detail_soup.find('div',id='content')
            content = div_tag.text
            fp.write(title+':'+content+'\n')
            print(title,'!!!')
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 9月23日
  • 已采纳回答 9月15日
  • 创建了问题 9月15日

悬赏问题

  • ¥100 需要跳转番茄畅听app的adb命令
  • ¥50 寻找一位有逆向游戏盾sdk 应用程序经验的技术
  • ¥15 请问有用MZmine处理 “Waters SYNAPT G2-Si QTOF质谱仪在MSE模式下采集的非靶向数据” 的分析教程吗
  • ¥50 opencv4nodejs 如何安装
  • ¥15 adb push异常 adb: error: 1409-byte write failed: Invalid argument
  • ¥15 nginx反向代理获取ip,java获取真实ip
  • ¥15 eda:门禁系统设计
  • ¥50 如何使用js去调用vscode-js-debugger的方法去调试网页
  • ¥15 376.1电表主站通信协议下发指令全被否认问题
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证