Получить конкретную информацию с BeautifulSoup - PullRequest
0 голосов
/ 07 ноября 2018

Я пытаюсь очистить все ссылки, содержащиеся в полях этого сайта . Однако мой режим ничего не возвращает. Что я делаю неправильно? Если я обычно ищу 'a' с помощью href = True, я не получаю ссылки, которые ищу.

import requests
from bs4 import BeautifulSoup

url = 'https://www.nationalevacaturebank.nl/vacature/zoeken?query=&location=&distance=city&page=1&limit=100&sort=relevance&filters%5BcareerLevel%5D%5B%5D=Starter&filters%5BeducationLevel%5D%5B%5D=MBO'
page = requests.get(url)  
soup = BeautifulSoup(page.content, 'lxml')

ahrefs = soup.find_all('a', {'class': "article-link" , 'href': True})
for a in ahrefs:
    print(a.text)

1 Ответ

0 голосов
/ 08 ноября 2018

Это угловые сайты, которые динамически загружают свой контент из внешнего Json API. API находится здесь: https://www.nationalevacaturebank.nl/vacature/zoeken.json и для него требуется файл cookie. Следующее форматирует ссылки, которые вы хотели извлечь:

import requests

r = requests.get(
    'https://www.nationalevacaturebank.nl/vacature/zoeken.json',
    params = {
        'query': '',
        'location': '',
        'distance': 'city',
        'page': '1,110',
        'limit': 100,
        'sort': 'date',
        'filters[careerLevel][]': 'Starter',
        'filters[educationLevel][]': 'MBO'
    },
    headers = {
        'Cookie': 'policy=accepted'
    }
)

links = [
    "/vacature/{}/reisspecialist".format(t["id"])
    for t in r.json()['result']['jobs']
]

print(links)

Результат Json также дает вам все метаданные карты, встроенные в эту страницу

...