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 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥15 想问一下树莓派接上显示屏后出现如图所示画面,是什么问题导致的
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)
  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染