#python #selenium-webdriver #web-scraping #beautifulsoup #web-crawler
#python #selenium-webdriver #очистка веб-страниц #beautifulsoup #веб-сканер
Вопрос:
Я пытаюсь сканировать ссылки на задания из этой сети.
Сначала я объясню свой код:
я буду сканировать все ссылки каждого задания, используя for
. После получения всех ссылок на первой странице я перейду на следующую страницу и повторю обход ссылок задания.
Но программа возвращает результат следующим образом:
как вы можете видеть, начиная с 11-й и так далее, ссылка повторяется как первые 10 ссылок.
Я предполагаю, что на самом деле он не переходит на следующую страницу, но все еще сканирует данные со старой страницы. В этом случае, сколько страниц, программа будет сканировать 1-ю страницу с одинаковым временем.
И на 1-й странице должно быть более 9 ссылок. Я действительно не знаю, как это исправить.
Как я могу решить эту проблему? Искренне спасибо!
Комментарии:
1. Пожалуйста, избегайте размещения ссылок на код, ваш код должен быть под вопросом, отформатирован как таковой.
2. да, я понимаю это, но я застрял в том, как опубликовать длинный код в вопросах: (
Ответ №1:
import requests
def main(url):
params = {
"x-algolia-agent": "Algolia for JavaScript (3.35.1); Browser",
"x-algolia-application-id": "JF8Q26WWUD",
"x-algolia-api-key": "ecef10153e66bbd6d54f08ea005b60fc"
}
data = "{"requests":[{"indexName":"vnw_job_v2","params":"query=amp;hitsPerPage=1000amp;attributesToRetrieve=["*","-jobRequirement","-jobDescription"]amp;attributesToHighlight=[]amp;query=amp;facetFilters=[]amp;filters=amp;numericFilters=[]amp;page=0amp;restrictSearchableAttributes=["jobTitle","skills","company"]"}]}"
r = requests.post(url, params=params, data=data)
for item in r.json()['results'][0]['hits']:
print(item['jobTitle'])
if __name__ == "__main__":
main('https://jf8q26wwud-dsn.algolia.net/1/indexes/*/queries')
Комментарии:
1. Искренне спасибо за ваш ответ, но я хочу сканировать ссылки на задания: (не названия:(
2. @Luong ответ JSON включает все нужные вам данные.