#python #html #json #python-requests
Вопрос:
Я пытаюсь соскрести отсюда названия должностей.
Используя Beautifulsoup, я могу соскрести названия должностей с первой страницы. Я не могу соскрести названия должностей с оставшихся страниц. Используя Developertool > сеть, я понял, что тип контента-JSON.
import requests
import json
import BeautifulSoup
from os import link
import pandas as pd
s = requests.Session()
headers = {
'Connection': 'keep-alive',
'sec-ch-ua': '^\^',
'Accept': '*/*',
'X-Requested-With': 'XMLHttpRequest',
'sec-ch-ua-mobile': '?0',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.101 Safari/537.36',
'Content-Type': 'application/json; charset=utf-8',
'Sec-Fetch-Site': 'same-origin',
'Sec-Fetch-Mode': 'cors',
'Sec-Fetch-Dest': 'empty',
'Referer': 'https://jobs.epicor.com/search-jobs',
'Accept-Language': 'en-US,en;q=0.9',
}
url=’https://jobs.epicor.com/search-jobs/results?ActiveFacetID=0amp;CurrentPage=2amp;RecordsPerPage=15amp;Distance=50amp;RadiusUnitType=0amp;Keywords=amp;Location=amp;ShowRadius=Falseamp;IsPagination=Falseamp;CustomFacetName=amp;FacetTerm=amp;FacetType=0amp;SearchResultsModuleName=Search Resultsamp;SearchFiltersModuleName=Search Filtersamp;SortCriteria=0amp;SortDirection=1amp;SearchType=5amp;PostalCode=amp;fc=amp;fl=amp;fcf=amp;afc=amp;afl=amp;afcf=’
response = s.get(url, headers=headers).json()
data=json.dumps(response)
#print(data)
d2=json.loads(data)
for x in d2.keys():
print(x)
###from above json results how to extract “jobtiltle”
Проблема в том, что данные JSON результата выше содержат Html-теги. В этом случае, как удалить названия должностей из данных JSON?
Был бы очень признателен за любую помощь в этом.
К сожалению, в настоящее время я ограничен использованием только запросов или другой популярной библиотеки python. Заранее спасибо.
Ответ №1:
Если названия должностей-это все, что вам нужно из текста вашего ответа:
from bs4 import BeautifulSoup
# your code here
soup = BeautifulSoup(response["results"])
for item in soup.findAll("span", { "class" : "jobtitle" }):
print(item.text)
Для навигации по страницам, если вы наведете курсор мыши на кнопки » До » или «Далее», вы увидите URL-адрес для запроса данных.