【问题标题】:Unable to parse an image link from a webpage using requests无法使用请求解析来自网页的图像链接
【发布时间】:2021-09-14 07:47:48
【问题描述】:

我正在尝试使用请求从两个相同的链接中抓取两个图像。但是,我创建的脚本无法获取它们。尽管图像链接是动态生成的,但大多数时候有一些方法可以使用请求来解析它。因此,我尝试使用开发工具找到它,但失败了。为了让您知道,这是the image 的位置,取自第一个链接。

import requests
from bs4 import BeautifulSoup

links = [
    'https://www.glideapps.com/templates/baby-reveal-boy-or-girl-wr',
    'https://www.glideapps.com/templates/escool-virtual-school-6d'
]

with requests.Session() as s:
    s.headers['User-Agent'] = 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36'
    for link in links:
        res = s.get(link)
        soup = BeautifulSoup(res.text,'lxml')
        app_image = soup.select_one("img.h-full")['src']
        print(app_image)

PS Selenium 不是我想使用的选项。

【问题讨论】:

  • 请在问题中明确指定预期行为和实际行为,运行代码时遇到的错误(如果有)
  • 也许我误解了你的意图,但你是想从 glideapps.com 窃取更高分辨率的图像吗?
  • 查看编辑@Grysik。顺便说一句,分辨率并不重要。

标签: python python-3.x web-scraping python-requests


【解决方案1】:

试试这个:-

from requests_html import HTMLSession


links = [
    'https://www.glideapps.com/templates/baby-reveal-boy-or-girl-wr',
    'https://www.glideapps.com/templates/escool-virtual-school-6d'
]

def main():
    with HTMLSession() as session:
        for link in links:
            res = session.get(link)
            res.raise_for_status()
            res.html.render()
            for img in res.html.xpath('//*/img[contains(@class, "h-full")]'):
                print(img.attrs['src'])

if __name__ == '__main__':
    main()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-06
    • 1970-01-01
    • 1970-01-01
    • 2017-11-19
    相关资源
    最近更新 更多