Найти - Пользователи
Полная версия: Парсинг
Начало » Python для новичков » Парсинг
1
ELVYY
Как ошибку исправить. Подскажите что не так и желательно объясните
 import urllib.request
from bs4 import BeautifulSoup
def get_hmtl(url):
	respons = urllib.request.urlopen(url)
	return respons.read()
def parse(html):
	soup = BeautifulSoup(html)
	table = soup.find('div', class_ = "container-fluid cols_table show_visited")
	projects = []
	for row in table.find_all('div'):
		cols = row.find_all('div')
		header = cols.find_all('h2')
		projects.append({
				#Записываем в словарь название
				'title': [title.text for title in header[0].a.find_all('a')]
			})
	for project in projects:
		print(project)
def main ():
	parse(get_hmtl('https://www.weblancer.net/jobs/'))
if __name__ == '__main__':
	main()
Вот ошибка:
ТЫК
Вот html сайта:
ТЫК

Скачать картинки, если не прогрузятся:

ELVYY
Первая картинка
FishHook
 		cols = row.find_all('div')
		header = cols.find_all('h2')

Думается мне так: find_all возвращает все элементы внутри элемента. То есть это - набор значений. Вы к этому набору пытаетесь применить опять же find_all. Это нелогично, нужен один элемент, внутри которого вы будете искать все вхождения.
Romissevd
Вот на скорую руку, а дальше продолжайте делать, что Вам необходимо
 import urllib.request
from bs4 import BeautifulSoup
def get_hmtl(url):
    respons = urllib.request.urlopen(url)
    return respons.read()
def parse(html):
    soup = BeautifulSoup(html)
    table = soup.find('div', class_ = "container-fluid cols_table show_visited")
    #projects = []
    for row in table.find_all('h2', class_ = "title"):
        print(row.find('a').text)
        
def main ():
    parse(get_hmtl('https://www.weblancer.net/jobs/'))
if __name__ == '__main__':
    main ()
ELVYY
Romissevd
cпасибо
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB