【问题标题】:Can't extract the text and find all by BeautifulSoup无法提取文本并通过 BeautifulSoup 查找全部
【发布时间】:2016-03-25 14:32:05
【问题描述】:

我想提取设备中所有可用的物品,但我只能得到前四个物品,然后我得到了'+加'。

import urllib2
from bs4 import BeautifulSoup
import re
import requests
headers = {'User-Agent':'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6'}
url = 'https://www.airbnb.fr/rooms/8261637?s=bAMrFL5A'
req = urllib2.Request(url = url, headers = headers)
html = urllib2.urlopen(req)
bsobj = BeautifulSoup(html.read(),'lxml')
b = bsobj.findAll("div",{"class": "row amenities"})

对于b的结果,它不会返回标签内的所有列表。 最后一个是'+ plus',如下所示。

<span data-reactid=".mjeft4n4sg.0.0.0.0.1.8.1.0.0.$1.1.0.0">+ Plus</span></strong></a></div></div></div></div></div>]

【问题讨论】:

    标签: python html web beautifulsoup screen-scraping


    【解决方案1】:

    这是因为页面加载后使用 reactjs 填充了数据。因此,如果您通过请求下载它,您将看不到数据。

    您必须使用selenium web driver,打开页面并处理所有javascript。然后你就可以访问你期望的所有数据了

    【讨论】:

    • 非常感谢,我通过使用 selenium 和 phantomjs 解决了这个问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-08
    • 1970-01-01
    • 1970-01-01
    • 2018-12-25
    • 2019-04-18
    • 2014-06-16
    • 1970-01-01
    相关资源
    最近更新 更多