无法通过BeautifulSoup提取文本并查找全部内容

时间:2015-12-18 20:04:28

标签: python html web beautifulsoup screen-scraping

我想提取équipements中的所有可用项目,但我只能获得前四项,然后我得到'+ plus'。

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>]

1 个答案:

答案 0 :(得分:1)

这是因为在页面加载后使用reactjs填充了数据。因此,如果您通过请求下载它,则无法查看数据。

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