【问题标题】:Python Beautifulsoup / Requests text from spanPython Beautifulsoup / 从跨度请求文本
【发布时间】:2020-07-25 20:38:30
【问题描述】:

我正在尝试使用 beautifulsoup 或来自此 Facebook 页面https://www.facebook.com/marketplace/item/1612977352197759/的请求来提取文本

文字是物品描述,地图前的文字: 这是我到目前为止尝试过但没有工作的方法:

import requests
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from lxml import html

opt = Options()
opt.add_argument("--disable-infobars")
opt.add_argument("start-maximized")
# Pass the argument 1 to allow and 2 to block
opt.add_experimental_option("prefs", {
        "profile.default_content_setting_values.media_stream_mic": 2,
        "profile.default_content_setting_values.media_stream_camera": 2,
        "profile.default_content_setting_values.geolocation": 2,
        "profile.default_content_setting_values.notifications": 2
    })
global driver
driver = webdriver.Chrome(chromedriver)


driver.get('https://www.google.com')

page = requests.get('https://www.facebook.com/marketplace/item/1612977352197759/?ref=messenger_banner')
tree = html.fromstring(page.content)
print(tree)
link = tree.xpath("//span[contains(string(),'hello')]")
print(link)

【问题讨论】:

    标签: python-3.x beautifulsoup python-requests


    【解决方案1】:

    试试这个:

    import requests
    from bs4 import BeautifulSoup
    import re
    page = requests.get('https://www.facebook.com/marketplace/item/1612977352197759/?ref=messenger_banner')
    soup = BeautifulSoup(page.text,'lxml')
    span = soup.find("span",string=re.compile(".*hello.*"))
    print(span)
    

    如果可行,请告诉我。

    【讨论】:

    • @Mooncraster 谢谢你的回答,打印(跨度)输出:无
    • 我过会再检查一下。基本上这意味着它找不到span 元素。对于测试,我会做的是 1. 打印 page.text 变量,并检查它是否真的有那个跨度。 2. 如果没有,那么可能是身份验证有问题?,如果确实有该元素,那么我们就是找不到它。然后转到 3。 3.soup.find有问题。检查这是否有效:soup.find('span',string="hello how are you doing 3")。这应该有效。如果这也不起作用,请告诉我。如果它有效,则正则表达式存在问题。
    • 我都试过了,最后一个给了我输出:无。我还是卡住了:(
    • @AnnahLairy 我试图打开链接,但找不到任何包含您提到的单词的跨度。您可能试图打开的市场对我(印度)来说并不相同。因此,您可能尝试的内容可能是动态的。 requests 只能显示基本 HTML,不能显示对页面进行动态更改的后果。
    • 我已经尝试创建一个房间here,看看你是否可以访问它。让我们在那里进行讨论/
    猜你喜欢
    • 2021-10-05
    • 2021-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-15
    • 1970-01-01
    • 2019-03-09
    • 2022-01-23
    相关资源
    最近更新 更多