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日

悬赏问题

  • ¥15 滑块验证码拖动问题悬赏
  • ¥15 Wanted but not invoked:Actually, there were zero interactions with this moc
  • ¥20 怎么驱动tb6612
  • ¥15 Arcgis 3D效果点要素
  • ¥15 在执行yolo训练脚本的时候,没有报错,在扫描val这一步后就推出执行了
  • ¥15 delphi开发的WEBSERVER改用HTTPS协议
  • ¥15 pic16f877A单片机的计数器proteus仿真失效
  • ¥100 调查 Vitis AI 中验证 .xmodel 量化后的正确性
  • ¥30 codelite全屏时file、setting那一行消失了
  • ¥15 gazebo-rviz教程