Я пытаюсь почистить все полные описания работы с этого сайта, но я застрял: https://www.seek.co.nz/data-analyst-jobs/full-time?daterange=31&salaryrange=70000-999999&salarytype=annual
Моя логика c это найти сначала все ссылки на вакансии на одной странице, а не на следующие страницы.
Мой код выглядит так:
from bs4 import BeautifulSoup
import requests
soup = BeautifulSoup(response.text, 'html.parser')
link_list = []
for a in soup.find_all('a', attrs={'data-automation': 'jobTitle'}, href=True):
link_list.append('https://www.seek.co.nz/' + a['href'])
print(link_list)
Код выше выглядит хорошо. Я могу напечатать список ссылок на вакансии и поместить их в список, но следующий код напечатал только 2 абзаца, после чего он выдал ошибку:
for link in link_list:
response = requests.get(link, 'lxml')
sp = BeautifulSoup(response.text, 'html.parser')
table = sp.find_all('div',attrs={'data-automation': 'jobDescription'})
for x in table:
print(x.find('p').text)
AttributeError Traceback (most recent call last)
<ipython-input-41-8afe949a9497> in <module>()
4 table = sp.find_all('div',attrs={'data-automation': 'jobDescription'})
5 for x in table:
----> 6 print(x.find('p').text)
AttributeError: 'NoneType' object has no attribute 'text'
Может кто-нибудь сказать мне, почему это не сработало и как сделать это правильно? Я использую Python 3 и BS4. Спасибо!