我正在尝试学习使用python库BeautifulSoup,我想,比如,在googleflights上刮一个航班的价格。 所以我连接了Google航班,比如在this link,我想得到最便宜的航班价格。在
因此,我将使用这个类“gws-flights-results\uuu trinerary-price”获得div中的值(如图所示)。在
下面是我写的简单代码:
from bs4 import BeautifulSoup
import urllib.request
url = 'https://www.google.com/flights?hl=it#flt=/m/07_pf./m/05qtj.2019-04-27;c:EUR;e:1;sd:1;t:f;tt:o'
page = urllib.request.urlopen(url)
soup = BeautifulSoup(page, 'html.parser')
div = soup.find('div', attrs={'class': 'gws-flights-results__itinerary-price'})
但是得到的div具有类NoneType
。在
我也试着
^{pr2}$但是在我用这种方式找到的所有div中,没有我感兴趣的div。 有人能帮我吗?在
这是伟大的,你正在学习网络刮削!结果得到NoneType的原因是因为你正在抓取的网站会动态加载内容。当请求库获取url时,它只包含javascript。这个类为“gws-flights-results\uuu trinerary-price”的div还没有呈现!这样你就不可能用这种方法来刮网站了。在
但是您可以使用其他方法,例如使用selenium或splash等工具获取页面来呈现javascript,然后解析内容。
beauthoulsoup是一个很好的工具,用于提取HTML或XML的一部分,但是这里看起来您只需要获取JSON对象的另一个get请求的url。在
(我现在不在电脑旁,明天可以用例子更新。)
看来javascript需要运行,所以使用selenium之类的方法
相关问题 更多 >
编程相关推荐