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)

【以下回答由 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表达式确实能够提取到链接。

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

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



【相关推荐】



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