weixin_53215066 2022-01-10 18:52 采纳率: 33.3%
浏览 34
已结题

用python爬取小说时,拼接url类型错误

问题遇到的现象和发生背景

用python爬取网页时,拼接url类型错误,运行后显示拼接的那段url需要转换为str类型,但是如果强制转换后输出的url就会带有[],是无效的url,就不能继续进行对新的url的解析了

问题相关代码,请勿粘贴截图
import requests
from lxml import html
etree=html.etree
if __name__ == '__main__':
    url="https://www.shicimingju.com/book/sanguoyanyi.html"
    headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.93 Safari/537.36"}
    page_text=requests.get(url,headers).content.decode('utf-8')
    tree=etree.HTML(page_text)
    li_link=tree.xpath('//div[@class="book-mulu"]/ul/li')
    fp = open('./三国.txt', 'w', encoding='utf-8')
    for link in li_link:
        #拼接错误!!!!!!
        #li_url="https://www.shicimingju.com"+str(link.xpath('./a/@href'))
        li_url = "https://www.shicimingju.com" + link.xpath('./a/@href')
        print(li_url)
        title=link.xpath('./a/text()')
        detail_text=requests.get(url=li_url,headers=headers).content.decode('utf-8')
        tree = etree.HTML(detail_text)

        content=tree.xpath('//div[@class="card bookmark-list"]/div/text()')
        fp.write(str(title+content))
        # print(content,"结束")
        print(title,'成功!!')






运行结果及报错内容

```

```li_url = "https://www.shicimingju.com" + link.xpath('./a/@href')
TypeError: can only concatenate str (not "list") to str

我的解答思路和尝试过的方法

加str强制转换

我想要达到的结果

拼接生成正确的url

  • 写回答

1条回答 默认 最新

  • 爱音斯坦牛 全栈领域优质创作者 2022-01-10 19:04
    关注
    
    li_url = "https://www.shicimingju.com" + link.xpath('./a/@href')[0]
    

    这样子就行了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 1月19日
  • 已采纳回答 1月11日
  • 创建了问题 1月10日

悬赏问题

  • ¥15 ATAC测序到底用什么peak文件做Diffbind差异分析
  • ¥15 安装ubantu过程中第一个vfat 文件挂载失败
  • ¥20 GZ::CTF如何兼容一些靶机?
  • ¥15 etcd集群部署问题
  • ¥20 谁可以帮我一下问一下各位
  • ¥15 为何重叠加权后love图的SMD与svyCreateTableOne函数绘制基线表的不一致
  • ¥15 QFILHelper怎么恢复全字库,提示进程已完成,只能恢复分区文件
  • ¥150 求 《小魔指》街机游戏机整合模拟软件
  • ¥20 你好,我想问下easyExcel下拉多选,或者复选框可以实现吗
  • ¥20 双非跨考工科哪个专业和方向就业前景好?