AttributeError: объект 'set' не имеет атрибута 'timeout' - PullRequest
0 голосов
/ 22 января 2020

У меня есть некоторые проблемы с кодом, помогите мне, пожалуйста.

Я взял все ссылки со страницы с этой забавой c:

def get_links(link):
    soup = BeautifulSoup(link, 'lxml')
    block = soup.find('div', class_='block-top-important')
    projects = [] 
    for string in block.find_all('a', class_='post-preview-text post-preview-text--no-padding'):
        #print(string)
        projects.append ({
            string.get('href')
        })
    return(projects)

Но когда я отправляю эти ссылки во 2-й Прикол c при сканировании страниц возвращает мне ошибку в строке 4:

def parse(html):
    stranica = []
    for link in html:
        soup = BeautifulSoup(urllib.request.urlopen(link), 'lxml')
        page = soup.find(class_= 'fb-quotable')
        title = page.find('h1').text
        for main_text in page:
            main_text.text = page.find('p', class_='align-left')
        stranica.append ((title, main_text))

Моё основное веселье c, при котором отправляются ссылки в коде:

def main():
    url = 'https://www.nur.kz/'
    op = get_html(url)
    take_links = get_links(op)
    start_parse = parse(take_links)


if __name__ == '__main__':
        main()

Полная трассировка ошибок:

Traceback (most recent call last):
  File "C:\Users\admin\AppData\Roaming\Sublime Text 3\Local\New pars.py", line 66, in <module>
    main()
  File "C:\Users\admin\AppData\Roaming\Sublime Text 3\Local\New pars.py", line 62, in main
    start_parse = parse(take_links)
  File "C:\Users\admin\AppData\Roaming\Sublime Text 3\Local\New pars.py", line 47, in parse
    soup = BeautifulSoup(urllib.request.urlopen(link), 'lxml')
  File "C:\Users\admin\AppData\Local\Programs\Python\Python38\lib\urllib\request.py", line 222, in urlopen
    return opener.open(url, data, timeout)
  File "C:\Users\admin\AppData\Local\Programs\Python\Python38\lib\urllib\request.py", line 515, in open
    req.timeout = timeout
AttributeError: 'set' object has no attribute 'timeout'
[Finished in 4.4s]

1 Ответ

0 голосов
/ 22 января 2020

Хорошо, я решил свою проблему, если у кого-то возникнет такой же вопрос:

Ошибка была здесь:

        projects.append ({
            string.get('href')
        })

Мой "for" ссылается на ссылки в "{}", так что это почему они являются «установленными» объектами, а не «строкой», а urllib возвращает ошибку.

Как я это исправил:

projects.append (string.get('href'))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...