gpt4 book ai didi

python-3.x - 使用 python 抓取网站搜索栏

转载 作者:行者123 更新时间:2023-12-05 06:52:52 24 4
gpt4 key购买 nike

我正在尝试为个人项目编写一些代码,在其中我可以从站点抓取数据,同时还可以使用该站点的查询框。

此外,我尝试使用的网站是 https://www.latlong.net/convert-address-to-lat-long.html我正在尝试在我的程序中输入您的地址。

然后请求转到 url 的地址搜索栏并执行查询,然后从站点中提取纬度/经度元素并将其存储在数据框中。

我知道我需要使用 beautifulsoup,而且根据我的阅读,可能需要使用 mechanize 和 selenium,但我在尝试阅读 mechanize 时有点迷路。

最佳答案

您可能想要使用后端端点。

例如:

import pandas as pd
import requests
from urllib.parse import urlencode

search_query = "Berlin, Germany"

payload = {
"c1": search_query,
"action": "gpcm",
"cp": "",
}

headers = {
"content-type": "application/x-www-form-urlencoded",
"user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) "
"AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36",
"referer": "https://www.latlong.net/convert-address-to-lat-long.html",
"x-requested-with": "XMLHttpRequest",
"cookie": "".join(
f"{k}={v}" for k, v
in requests.get("https://www.latlong.net").cookies.get_dict().items()
),
}

response = requests.post(
"https://www.latlong.net/_spm4.php",
data=urlencode(payload),
headers=headers,
).text

df = pd.DataFrame(
[[*search_query.split(", "), *response.split(",")]],
columns=["City", "Country", "Latitude", "Longitude"],
)
print(df)

输出:

     City  Country   Latitude  Longitude
0 Berlin Germany 52.520008 13.404954

附言。不要过度使用它,因为它们会限制您的请求。或者使用 VPN 继续查询。

关于python-3.x - 使用 python 抓取网站搜索栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65894749/

24 4 0