2015-05-25 1 views
1

Я пытаюсь сделать скребковый акциз, используя запросы python и beautifulsoup. В основном я просматриваю веб-страницу амазонки. Я могу сканировать первую страницу без каких-либо проблем.Python Скрест с запросами и beautifulsoup

r = requests.get("http://www.amazon.in/gp/bestsellers/books/ref=nav_shopall_books_bestsellers") 
#do some thing 

Но когда я пытаюсь сканировать 2-ю страницу с «# 2» в URLs

r = requests.get("http://www.amazon.in/gp/bestsellers/books/ref=nav_shopall_books_bestsellers#2") 

Я вижу, г-прежнему имеет такое же значение, что эквивалентно стоимости 1 страницы.

r = requests.get("http://www.amazon.in/gp/bestsellers/books/ref=nav_shopall_books_bestsellers") 

Dont know is # 2 вызывает проблемы при обращении к второй странице. Я также рассказываю о проблемах, но я не смог найти решение. Каков правильный способ сделать запрос URL с #значением. Как решить эту проблему. Пожалуйста посоветуй.

ответ

0

Вам необходимо запросить URL-адрес в атрибуте привязки якорных меток href, описывающих разбиение на страницы. Он находится внизу страницы. Если я проверить страницу в консоли разработчика в Google Chrome я нахожу первые страницы url, как:

http://www.amazon.in/gp/bestsellers/books/ref=zg_bs_books_pg_1?ie=UTF8&pg=1 

и URL второй страницы является так:

http://www.amazon.in/gp/bestsellers/books/ref=zg_bs_books_pg_2?ie=UTF8&pg=2 

a тег на второй странице например:

<a page="2" ajaxUrl="http://www.amazon.in/gp/bestsellers/books/ref=zg_bs_books_pg_2?ie=UTF8&pg=2&ajax=1" href="http://www.amazon.in/gp/bestsellers/books/ref=zg_bs_books_pg_2?ie=UTF8&pg=2">21-40</a> 

Поэтому вам необходимо изменить URL-адрес запроса.

1

«# 2» - это номер fragment identifier, он не отображается на серверной стороне. Html-контент, который вы получаете, открытие «http://someurl.com/page#123» аналогично содержимому для «http://someurl.com/page».

В браузере вы видите вторую страницу, потому что javascript страницы видит идентификатор фрагмента, создает ajax-запрос и вводит новый контент на страницу. Вы должны find URL AJAX запрос и использовать его:

enter image description here

Похоже, наш URL является:

http://www.amazon.in/gp/bestsellers/books/ref=zg_bs_books_pg_2?ie=UTF8&pg=2&aj

Легко можно понять, что все, что нам нужно изменить «пг» значение парам чтобы получить другие страницы.

Смежные вопросы