【问题标题】:How to extract location name with longitude and latitude? Using python and selenium如何提取带有经度和纬度的位置名称?使用 python 和 selenium
【发布时间】:2021-01-24 05:02:16
【问题描述】:

网站链接:https://www.yes.com.kh/support/find-shop

我的代码现在只是设法转移位置名称。由于代码在网络文件中,因此很难获得经度和纬度。有什么想法吗?这太难了。

 #situation: -no elements in page source
 # - use inspect to find the page source
 # - in the same div class 

import selenium 
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from webdriver_manager.chrome import ChromeDriverManager
#from selenium.webdriver.common.keys import Keys
import pandas as pd

#install a webdriver
driver = webdriver.Chrome(ChromeDriverManager().install())

#input link for the web driver to access
driver.get('https://www.yes.com.kh/support/find-shop')

locations=WebDriverWait(driver,20).until(EC.presence_of_all_elements_located((By.XPATH,'//div[@class="item blog"]//div[@class="d-title"]')))

这是我的输出。它只是设法捕获网站上的所有数据,但是当您尝试在列出的所有省份加载更多数据时,还有其他数据。

                                   Location Name
0                            Tit Heng Phone Shop
1                               Nina2 Phone Shop
2                                 G B Phone Shop
3                             Rathana Phone Shop
4                    Chet Traprek Hou Phone Shop
5                            Siv Heng Phone Shop
6                                D Na Phone Shop
7                       Heang Heang 2 Phone Shop
8                              Rayuth Phone Shop
9                               Virak Phone Shop
10                         yes hub Sihanoukville
11  yes hub Sihanouk Ville International Airport
12                                  Kim Nai Houy
13                          Kim Sreng phone shop
14                                   Por Sokleng
15                            yes hub Battambang
16                       Yorn Kim Err Phone Shop
17                                   Yorn Bunyan
18                           Yon Hour Phone Shop
19                           Yin Fuoy Phone Shop
20                                yes hub Poipet
21                        yes hub Serei Sorphorn
22                                    Sam Sophea
23                                 Kheang Lyhour
24                                   Rith Sovann
25                             yes hub siem reap
26       yes hub Siem Reap International Airport
27                            Vannak Phone Shopp
28                           Rattanak Phone Shop
29                          Hun Rithy Phone Shop
30                                   yes hub kep
31                                 yes hub takeo
32                          yes hub kampong speu
33                       Khoun Phalla Phone Shop
34                          Pheng Nai phone shop
35                     Pheng Chhunleng phon shop
36                       Cheang Srong phone shop
37                                yes hub Kampot
38                                Thov Vannarith
39                                Preap Samphors
40                          yes hub kampong cham
41                         Pea Vibuth Phone shop
42                       Oeng Sopanha Phone Shop
43                          Sorn Naro phone shop
44                         Ka tangkea phone shop
45                                yes hub pursat
46                            yes hub svay rieng
47                         Kim Veasna phone shop
48                       Lim Sorphorn phone shop
49                         Mao Sithan phone shop
50                         Yuk Samorn phone shop
51                              yes hub koh kong
52                                yes hub pailin
53                        Veng Hong 2 Phone Shop
54                             Veasna Phone Shop
55                           Van Seam Phone Shop
56                          Srey Neth Phone Shop
57                          yes hub Kampong Thom
58                       yes hub Kampong Chhnang
59                             yes hub prey veng

【问题讨论】:

  • 所以你想通过调用/shops?lang=en&limit=5&list=web&type=&ehub=true获取数据?这是调用 API,通过 UI 自动化工具执行此操作使其变得不必要。你可以做什么(虽然有点努力):将该请求的 curl 导出到 Postman,将 Postman 的请求导出为 Python,并在您的代码中使用它,请参阅pastebin.com/Zux5kJRQ
  • 我不明白。在我的代码中使用什么?而pastebin的作用是什么?

标签: python selenium web-scraping beautifulsoup


【解决方案1】:

你不需要在这上面使用 selenium。您可以通过 API 获得您想要的内容,然后在响应中使用 json 解析器。像这样的东西:

【讨论】:

  • 您能详细说明一下吗?在一步一步的过程中?通过什么是 json 解析器的链接
  • 这里是 json 解析器的链接 jsonpath.herokuapp.com 正如你提到的,纬度和经度在网络中,得到那个响应。然后您在线搜索您可能使用的 json 解析器库,具体取决于您要使用的语言。我提供的链接是用于手动解析的,只能一一解析。如果你想自动化它,你应该使用一个库。好吗?
  • 这对米莉很有帮助!但是,你能指导我如何通过 API 导出吗?
  • 对不起,我不确定你在问什么。如果您只想复制响应,则只需从“网络”选项卡中复制它。如果你想在 api 请求中使用 python,你可以安装 'requests' 模块(stackoverflow.com/questions/30362600/…)。但我认为在做这些自动化的东西之前,你必须在网上寻找初学者教程。
  • 你是如何从网络上复制精美的?当我复制我的时,它变得紧凑。我从网络响应复制并将其直接粘贴到 jsonpath。谢谢米莉
猜你喜欢
  • 2018-11-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-14
  • 1970-01-01
  • 2012-02-16
  • 1970-01-01
相关资源
最近更新 更多