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 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。