Я изучаю Python как первый язык в течение нескольких месяцев и пытаюсь создать веб-скребок, который вместо того, чтобы полагаться на URL-адреса, которые я ему предоставляю, сканирует веб-сайт чтобы получить URL-адреса для меня.Создайте список для подачи URL-адресов в веб-скребок
Я определил, какие разделы сайта содержат URL-адреса, которые мне нужны, и знаю/думаю, что мне нужны 2 списка, чтобы делать то, что я хочу.
Первый, это список адресов для городов, второй - список URL-адресов для единиц внутри этих цитат. Это URL-адреса единиц, которые я в конечном счете хочу перебрать и удалить данные. До сих пор у меня есть следующий код:
def get_cities():
city_sauce = urllib.request.urlopen('the_url')
city_soup = BeautifulSoup(city_sauce, 'html.parser')
the_city_links = []
for city in city_soup.findAll('div', class_="city-location-menu"):
for a in city.findAll('a', href=True, text=True):
the_city_links.append('first_half_of_url' + a['href'])
return the_city_links
Когда я распечатать это он показывает все URLs мне нужно, поэтому я думаю, что мы успешно создали список ссылок здесь?
Вторая часть следующим образом:
def get_units():
for theLinks in get_cities():
unit_sauce = urllib.request.urlopen(theLinks)
unit_soup = BeautifulSoup(unit_sauce, 'html.parser')
the_unit_links = []
for unit in unit_soup.findAll('div', class_="btn white-green icon-right-open-big"):
for aa in unit.findAll('a', href=True, text=True):
the_unit_links.append(aa)
return the_unit_links
При печати это просто возвращает []. Я не уверен, где я ошибаюсь, любая помощь будет оценена!
Часть 2 редакции:
def get_units():
for the_city_links in get_cities():
unit_sauce = urllib.request.urlopen(the_city_links)
unit_soup = BeautifulSoup(unit_sauce, 'html.parser')
the_unit_links = []
for unit in unit_soup.findAll('div', class_="btn white-green icon-right-open-big"):
for aa in unit.findAll('a', href=True, text=True):
the_unit_links.append(aa)
return the_unit_links
Вам необходимо предоставить какой канал связи вы пытаетесь принести? Может быть, вы отсутствуете, чтобы получить что-то или, может быть, вы выбираете неправильный класс. –
Я поместил url в 'city_sauce', я надеялся, что' unit_sauce' возьмет каждую из этих ссылок, которые хранятся в списке, проанализируйте их в 'unit_soup', а затем зайдите в каждую из ссылок и возьмите hrefs в '' div ', class _ = "btn white-green icon-right-open-big" ', а затем добавьте их в список' the_unit_links', который затем будет повторяться в моем скрепе. Есть идеи? @ PiyushS.Wanare Я немного изменил вторую часть, см. Ревизию. – Maverick
Это будет лучше, если вы поместите данные в одну функцию. –