Красивые страницы супа за стеклянной дверью - PullRequest
2 голосов
/ 01 августа 2020

У меня есть ссылка на стеклянную дверь, к которой я пытаюсь получить доступ через request.get() https://www.glassdoor.com/Job/jobs.htm?sc.generalKeyword=%22teaching%22&sc.locationSeoString=new+york&locId=1132348&locT=C

Я заметил, что когда я нажимаю на следующую страницу, добавляется lo_IP{page_number}.htm . Например: https://www.glassdoor.com/Job/jobs.htm?sc.generalKeyword=%22teaching%22&sc.locationSeoString=new+york&locId=1132348&lo_IP4.htm для страницы 4.

но когда я go перехожу прямо к этой ссылке (например, страница 4), я не попадаю на страницу 4. Есть ли там способ go на n-й номер страницы?

    pages= 2
 
    for x in range(1, pages):
        page_url = "https://www.glassdoor.com/Job/jobs.htm?sc.generalKeyword=%22teaching%22&sc.locationSeoString=new+york&locId=1132348&lo_IP{}.htm".format(x)
        headers = {"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"}
        page = requests.get(page_url, headers=headers)
        soup = BeautifulSoup(page.content, 'html.parser')

1 Ответ

1 голос
/ 01 августа 2020

По:

<li class="page">
    <a href="/Job/jobs.htm?sc.generalKeyword=%22teaching%22&amp;sc.locationSeoString=new+york&amp;locId=1132348&amp;locT=C&amp;p=4">
        <span class="link">4</span>
    </a>
</li>

https://www.glassdoor.com/Job/jobs.htm?sc.generalKeyword=%22teaching%22&sc.locationSeoString=new+york&locId=1132348&locT=C&p=4 перейдет на страницу 4.

И логически &p=n перейдет на n-ю страницу. Итак, чтобы получить n-ю страницу

url = f'https://www.glassdoor.com/Job/jobs.htm?sc.generalKeyword="teaching"&sc.locationSeoString=new+york&locId=1132348&locT=C&p={n}'

сайт Origin работает по JS. Он просто запрашивает данные и обновляет URL-адрес и страницу. Итак, https://www.glassdoor.com/Job/jobs.htm?sc.generalKeyword=%22teaching%22&sc.locationSeoString=new+york&locId=1132348&lo_IP4.htm - это просто то, что помещает в URL-адрес.

...