gpt4 book ai didi

javascript - 使用 python 抓取从网页中嵌入的传单应用程序获取坐标

转载 作者:行者123 更新时间:2023-12-03 04:10:31 24 4
gpt4 key购买 nike

我正在尝试从使用嵌入式传单来可视化这些点的网页下载点(捷克共和国的 ATM)坐标。

这是网页:(捷克语)

http://www.kurzy.cz/banky/bankomaty/zatec-okres-louny/

我使用的是python3

到目前为止我所做的是使用 urllib 下载网页并使用 beautiful soup 以某种方式格式化它。

from bs4 import BeautifulSoup
import urllib

url = 'http://www.kurzy.cz/banky/bankomaty/zatec-okres-louny/'

raw_text = urllib.request.urlopen(url).read()
utf_text = raw_text.decode('utf-8')
soup = BeautifulSoup(utf_text)

scripts = soup.findAll("script")
scripts

我想要获取的内容隐藏在“point_list”变量中 - 它包含 ATM 的坐标和名称,但我没有成功获取该变量。

...
point_list = ['', '/static/vizualizace/leaflet/img/icon/banky/zluta_bankomaty.svg', [50.3165463776, 13.535562001, '<b>Česká spořitelna</b><br />Husova 2908, Žatec<br />...
...

我尝试过但不起作用:

for link in soup.find_all("script"):
if "point" in link:
print(link)

它不打印任何内容。

一定有一些重要的事情我错过了,而且似乎无法找到答案。我没有太多抓取经验,之前只抓取过一些超链接,这相当简单。

更新:

感谢 @vold 的回答,我能够将其用作我所需要的入门工具。

list_addresses = []
# first split by left bracket
for item in all_address.split('['):
# then replace redundant characters
replace_item1 = item.replace("<br /><b>GPS: </b>", ',')
replace_item2 = replace_item1.replace("</b><br />", ",")
replace_item = replace_item2.replace("'<b>", "")
# and split an element (one ATM) by comma, creating a list of lists
clean_item = replace_item.split(',')
# strip whitespace
strip_list = list(map(str.strip, clean_item))
# creates list of lists
list_addresses.append(strip_list)

# I don't need the first element
Table = pd.DataFrame(list_addresses[1:])
Table

我认为这不是一个干净的解决方案,如果有更优雅的东西,我将不胜感激。

谢谢

最佳答案

您可以使用parsel库和正则表达式从页面源获取所需的值,如下所示:

import requests
from parsel import Selector


url = 'http://www.kurzy.cz/banky/bankomaty/zatec-okres-louny/'
r = requests.get(url)
sel = Selector(r.text)
all_address = sel.xpath('//script[contains(.,"point_list")]').re_first(r'point_list = \[(.*)\]\];')

for item in all_address.split(','):
print(item)

但是您也可以使用 xpath 表达式直接从页面获取该值://div[h2]/text()

关于javascript - 使用 python 抓取从网页中嵌入的传单应用程序获取坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44353476/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com