Я пытался получить данные и экспортировать их в файлы CSV.Я использую 2 URL-адреса для получения данных с нескольких страниц, установив главную страницу URL-адреса и главную страницу второго URL-адреса, которые я импортировал из следующих:
from bs4 import BeautifulSoup
import urllib.request
from urllib.parse import urlparse, parse_qs
import csv
def get_page(url):
request = urllib.request.Request(url)
response = urllib.request.urlopen(request)
mainpage = response.read().decode('utf-8')
return mainpage
mainpage = get_page(www.mainwebsite.com)
mainpage_parser = BeautifulSoup(mainpage,'html.parser')
secondpage = get_page('www.secondmainwebsite.com')
secondpage_parser = BeautifulSoup(secondpage,'html.parser')
Шаблоны данных такие же, как заголовок,Адрес;таким образом, код, который я использую, - это «найти» или «найти_все» в каждом классе;например,
try:
name = page_parser.find("h1",{"class":"xxx"}).find("a").get_text()
print(name)
except:
print(name)
Который работал.Тем не менее, я не смог получить "lat" и "lon" из ссылки URL в этом HTML-классе:
<img class="aaa" alt="map" data-track-id="static-map" width="97" height="142" src="https://www.website.com/aaaaaaa&map=StreetMapHD&width=194&height=284&lat=18.832687&lon=98.998473&level=15& returnImage=true">
Код, который я пытаюсь получить широта и долгота:
for gps in secondpage_parser.find_all('img',{"class":"aaa"}, src=True):
parsed_url = urlparse(gps['src'])
mykeys = ['lat', 'lon']
gpslocation = [parse_qs(parsed_url.query)[k][0] for k in mykeys]
print(gps['src'], parse_qs(parsed_url.params))
Но в строке «print (gps ['src'], parse_qs (parsed_url.params))» есть ошибка «Name», в которой указано «NameError: имя« gps »не определено»
Я хотел бы знать, какая часть здесь у меня есть ошибка или как я должен исправить это.Пожалуйста, помогите.