【问题标题】:How to webscrape flights using Python如何使用 Python 抓取航班
【发布时间】:2023-03-04 08:05:05
【问题描述】:

我正在对机票网站进行网页抓取。我的问题是:我正在使用 Chrome 开发人员来识别我要抓取的 HTML 对象的类。但是,我的代码没有找到它。看起来我没有下载可以在 Chrome 开发人员扩展中看到的 HTML 代码。 (检查项目...)

import requests 
from BeautifulSoup import BeautifulSoup
 
url = 'http://www.momondo.de/flightsearch/?Search=true&TripType=2&SegNo=2&SO0=BOS&SD0=LON&SDP0=07-09-2016&SO1=LON&SD1=BOS&SDP1=12-09-2016&AD=1&TK=ECO&DO=false&NA=false'
req = requests.get(url)
soup = BeautifulSoup(req.content)
x = soup.findAll("span" ,{"class":"value"} )

【问题讨论】:

  • 如果我发现有人为了自己的利益而爬取我的网站,我会尽快阻止他们的访问。请记住,网站有时会提供您可以使用的 API。此外,当他们更改网站布局/结构时会发生什么?

标签: python-3.x web-scraping


【解决方案1】:

请尝试以下方法:

from bs4 import BeautifulSoup
import urllib.request

source = urllib.request.urlopen('http://www.momon...e&NA=false').read()
soup = BeautifulSoup(source,'html5lib')
for item in soup.find_all("span", class_="value"):
    print(item.text)

这样,您可以使用“值”类抓取网页的所有跨度。如果您想查看整个 html 元素及其属性而不仅仅是内容,请从 print(item.text) 中删除 .text

您可能需要使用 pip 安装 html5lib,如果您在执行此操作时遇到问题,请尝试以管理员身份运行 CMD(假设您使用的是 windows)。

【讨论】:

    【解决方案2】:

    你也可以试试这个:

    for values_in_x in x:
    
        print(values_in_x.text)
    

    【讨论】:

      猜你喜欢
      • 2021-10-27
      • 2021-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-20
      • 1970-01-01
      • 2020-09-08
      • 2020-09-08
      相关资源
      最近更新 更多