python - 使用 Beautifulsoup 从网站中提取数据

标签 python pandas selenium beautifulsoup

我正在尝试提取模型名称和有关模型的任何其他详细信息。当我尝试获取文本时,我找不到任何可用于获取数据的特殊内容。

有人知道如何从这些 url 中获取数据吗?

https://www.audi.de/de/brand/de.html

https://www.opel.de/auswahlhilfe/modelle.html

我想获取型号列表和任何可用的属性,例如价格。

到目前为止,我正在尝试使用它:

    from selenium import webdriver
    from bs4 import BeautifulSoup
    import pandas as pd
    from urllib.request import urlopen

    url = "https://www.opel.de/auswahlhilfe/modelle.html"
    html = urlopen(url)
    text = soup.get_text()

但我没有得到任何有用的东西.. 这里有专家吗?

最佳答案

如果您转到“网络”选项卡,您将获得以下链接,该链接以 json 格式返回值。 你不需要 Selenium 来做到这一点。

https://www.opel.de/apps/atomic/getVehicleTeasers.path=L2NvbnRlbnQvb3BlbC93b3JsZHdpZGUvZ2VybWFueS9kZS9pbmRleC9iYXNlYmFsbC1jYXJkcy9iYmMtY29sbGVjdGlvbnMvdmVoaWNsZXMtb25seS1jb2xsZWN0aW9uPuGlIfE.feefoEnabled=false.expandingMenuEnabled=false.json

试试下面的代码。

from bs4 import BeautifulSoup
import requests
import pandas as pd
url='https://www.opel.de/apps/atomic/getVehicleTeasers.path=L2NvbnRlbnQvb3BlbC93b3JsZHdpZGUvZ2VybWFueS9kZS9pbmRleC9iYXNlYmFsbC1jYXJkcy9iYmMtY29sbGVjdGlvbnMvdmVoaWNsZXMtb25seS1jb2xsZWN0aW9uPuGlIfE.feefoEnabled=false.expandingMenuEnabled=false.json'
rs=requests.get(url).json()
html=''.join(rs['bbcTeaser'])
soup=BeautifulSoup(html,'html.parser')
car_name=[]
car_price=[]
for name, price in zip(soup.select('.q-carline'),soup.select('.q-value')):
    car_name.append(name.text)
    car_price.append(price.text)

df = pd.DataFrame({"car_name":car_name,"car_price":car_price})
print(df)

输出:

                           car_name                       car_price
0                              ADAM  € 14.120,00 nur Lagerfahrzeuge
1                        ADAM ROCKS  € 16.475,00 nur Lagerfahrzeuge
2                      ADAM ROCKS S                     € 20.430,00
3                            ADAM S                    € 19.330,00 
4                          Ampera-e                     € 42.990,00
5                     Astra 5-Türer                     € 19.990,00
6               Astra Sports Tourer                     € 20.990,00
7                           Cascada  € 33.995,00 nur Lagerfahrzeuge
8                        Combo Life                     € 21.645,00
9                       Neuer Corsa                     € 13.990,00
10                          Corsa-e                     € 29.900,00
11                    Corsa 3-Türer                     € 13.255,00
12                    Corsa 5-Türer                     € 14.055,00
13                      Crossland X                     € 18.750,00
14                      Grandland X                     € 24.700,00
15             Insignia Grand Sport                     € 28.505,00
16                     Insignia GSi                     € 46.695,00
17           Insignia Sports Tourer                     € 29.505,00
18          Insignia Country Tourer                     € 41.385,00
19                             KARL                     € 13.350,00
20                       KARL ROCKS                     € 12.965,00
21                          Mokka X                     € 20.495,00
22                           Zafira                     € 28.495,00
23                      Zafira Life                     € 34.780,00
24                      Combo Cargo                     € 20.230,00
25                     Movano Cargo                     € 27.925,00
26              Movano Doppelkabine                     € 38.288,25
27  Movano Fahrgestell Normalkabine                     € 34.777,75
28  Movano Fahrgestell Doppelkabine                     € 35.967,75
29      Movano Plattformfahrgestell                     € 34.777,75
30              Movano Kofferaufbau                     € 46.320,75
31     Movano Pritsche Normalkabine                     € 37.574,25
32     Movano Pritsche Doppelkabine                     € 38.764,25
33              Movano Kofferaufbau                     € 46.320,75
34     Movano Pritsche Normalkabine                     € 37.574,25
35     Movano Pritsche Doppelkabine                     € 38.764,25
36       Movano Kipper Normalkabine                     € 39.894,75
37       Movano Kipper Doppelkabine                     € 44.178,75
38                     Vivaro Cargo                     € 29.750,00
39              Vivaro Doppelkabine                     € 33.082,00
40                     Vivaro Kombi                     € 31.237,50
41              Grandland X Hybrid4                     € 51.165,00
42                     Movano Kombi                     € 30.905,00

快照:

enter image description here

关于python - 使用 Beautifulsoup 从网站中提取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58734276/

相关文章:

python - 如何在 Pandas 中用多个唯一字符串替换重复值?

python - 了解用户定义的迭代器

python - 如何在 python 中求和

python - 从 pandas 中的数据获取 header

html - 如何从类内的微数据元标记中检索内容值

Node.JS selenium 发送 key 回车

python - Pandas 数据框格式化

python - Pandas 数据框分组和求和,在组内,跨行值而不是按列

pandas - Pandas 中每 12 小时的 dt.floor 计数

java - 无法设置无人机: NoClassDefFoundError: com/opera/core/systems/OperaDriver