【问题标题】:Request object gives None as output请求对象给出 None 作为输出
【发布时间】:2021-01-22 16:26:46
【问题描述】:

我正在尝试使用 Bs4 和请求解析来自 reddit 网站的图像。但我不知道如何。这是我的代码:

from bs4 import BeautifulSoup
import requests

source = requests.get('https://www.reddit.com/r/programmingmemes/').text  #requests object as text
soup = BeautifulSoup(source, 'lxml')

img = soup.find('div', class_='_3Oa0THmZ3f5iZXAQ0hBJ0k')  # finding first post's class
div = img.find('div')  #finding 'div'
src = div.find('src')  # finding 'srs'
print(src)

我希望输出为:

<div> <img alt="Post image" class="_2_tDEnGMLxpM6uOa2kaDB3 ImageBox-image media-element _1XWObl-3b9tPy64oaG6fax" src="preview.redd.it/ik1g60hzoqc61.jpg? width=640&amp;crop=smart&amp;auto=webp&amp;s=c5fedaba3e5627cf8fcdd008317ac39789d71abc" style="max-height:512px"/> </div>

【问题讨论】:

    标签: python html beautifulsoup python-requests


    【解决方案1】:

    您需要 requests.get() 方法中的标头来获得正确的响应。

    from bs4 import BeautifulSoup
    import requests
    headers = {
    "origin": "https://www.reddit.com",
    "referer": "https://www.reddit.com/r/programmingmemes/",
    # "sec-ch-ua": '"Google Chrome";v="87", " Not;A Brand";v="99", "Chromium";v="87"',
    # "sec-ch-ua-mobile": "?0",
    "sec-fetch-dest": "empty",
    "sec-fetch-mode": "cors",
    "sec-fetch-site": "same-origin",
    "user-agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36"
    }
    source = requests.get('https://www.reddit.com/r/programmingmemes/', headers=headers)
    print(source.status_code)
    soup = BeautifulSoup(source.text, 'lxml')
    
    img = soup.find('div', class_='_3JgI-GOrkmyIeDeyzXdyUD _2CSlKHjH7lsjx0IpjORx14')
    link = img.a["href"]
    print(link)
    image = img.img["src"]
    print(image)
    

    【讨论】:

      【解决方案2】:

      您使用了错误的类名,我认为_2_tDEnGMLxpM6uOa2kaDB3 是正确的(该站点上没有类名_3Oa0THmZ3f5iZXAQ0hBJ0k 的元素)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-07-27
        • 2020-08-02
        • 2022-11-30
        • 2015-12-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多