亦尽兴 2023-08-07 15:38 采纳率: 50%
浏览 13

Python爬虫爬取必应图片的一个环节,使用xpath获取下载图片的URL时,获取内容为空,检查过xpath语法正确,坐等解决方法

Python爬虫爬取必应图片的一个环节,使用xpath获取下载图片的URL时,获取内容为空,检查过xpath语法正确,坐等解决方法

img



import requests
from lxml import etree

url = 'https://cn.bing.com/images/search?view=detailV2&ccid=lH2TkHTF&id=65167C9E54BD6A516682173F7A4747E63FA4D77E&thid' \
      '=OIP.lH2TkHTFHjovR0wqZFDVoAHaEK&mediaurl=https%3a%2f%2fts1.cn.mm.bing.net%2fth%2fid%2fR-C' \
      '.947d939074c51e3a2f474c2a6450d5a0%3frik%3dftekP%252bZHR3o%252fFw%26riu%3dhttp%253a%252f%252fimg3.donews.com' \
      '%252fuploads%252fimg3%252fimg_pic_1530694840_0%26ehk%3dTqmFU1WejMz%252frQawSVbV7db9KDdl%252fUw5L2HWmPQHqPQ' \
      '%253d%26risl%3d%26pid%3dImgRaw%26r%3d0&exph=1080&expw=1920&q=%e6%95%85%e5%ae%ab&simid=608051165034519383&FORM' \
      '=IRPRST&ck=06B53B135EB364C0A5765DF5E81F6BF7&selectedIndex=33&qft=+filterui%3aimagesize-custom_1920_1080&vt=0' \
      '&sim=11 '
headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) '
                      'Chrome/115.0.0.0 Safari/537.36 Edg/115.0.1901.188 '
    }
res = requests.get(url=url, headers=headers)
page = res.text
ele = etree.HTML(page)
new_url = ele.xpath('//div[@class="imgContainer"]/img/@src')
print(new_url)

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-08-07 19:16
    关注

    【以下回答由 GPT 生成】

    首先,我们需要检查爬虫是否能够成功获取到网页的内容。可以使用requests库发送GET请求来获取网页内容。

    import requests
    
    response = requests.get(url)
    print(response.status_code)
    print(response.text)
    

    如果输出的status_code为200,并且text显示了网页的内容,说明爬虫可以成功获取到必应图片网页的内容。如果输出的status_code不是200,则可能是网络连接问题,可以检查网络连接或者尝试使用代理。

    接下来,我们需要确认XPath表达式是否正确。可以使用lxml库来解析网页内容,并使用XPath表达式提取需要的链接。

    from lxml import etree
    
    html = etree.HTML(response.text)
    urls = html.xpath('YOUR_XPATH_EXPRESSION')
    print(urls)
    

    在这里,你需要将YOUR_XPATH_EXPRESSION替换为正确的XPath表达式。如果urls的结果为空列表,可能是XPath表达式错误,你可以再次检查并确保XPath表达式确实能够提取到链接。

    最后,如果以上步骤都没有问题,但仍然无法获取到链接,有可能是图片链接是动态加载的。这种情况下,你需要分析网页的网络请求,找到加载图片链接的请求,并模拟发送该请求获取到图片链接。

    希望以上解决方案能够帮助你解决问题,如果还有其他疑问,请随时提问!



    【相关推荐】



    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 修改了问题 8月7日
  • 创建了问题 8月7日

悬赏问题

  • ¥15 CCF-CSP 2023 第三题 解压缩(50%)
  • ¥30 comfyui openpose报错
  • ¥20 Wpf Datarid单元格闪烁效果的实现
  • ¥15 图像分割、图像边缘提取
  • ¥15 sqlserver执行存储过程报错
  • ¥100 nuxt、uniapp、ruoyi-vue 相关发布问题
  • ¥15 浮窗和全屏应用同时存在,全屏应用输入法无法弹出
  • ¥100 matlab2009 32位一直初始化
  • ¥15 Expected type 'str | PathLike[str]…… bytes' instead
  • ¥15 三极管电路求解,已知电阻电压和三级关放大倍数