Как собрать информацию о конкретном продукте c с помощью панели поиска - PullRequest
0 голосов
/ 27 января 2020

Я создаю систему - в основном Python с помощью Scrapy - в которой я могу, в основном, найти информацию о спецификаторах c продукта . Но дело в том, что URL-адрес запроса огромен, я получил подсказку, что мне нужно заменить некоторые его части переменными, чтобы получить тот конкретный c продукт, в котором я хотел бы искать, но в URL-адресе так много полей что я точно не знаю, как это сделать.

например, : "https://www.amazon.com.br/s?k=demi+lovato+365+dias+do+ano&adgrpid=86887777368&hvadid=392971063429&hvdev=c&hvlocphy=9047761&hvnetw=g&hvpos=1t1&hvqmt=e&hvrand=11390662277799676774&hvtargid=kwd-597187395757&hydadcr=5658_10696978&tag=hydrbrgk-20&ref=pd_sl_21pelgocuh_e%2Frobot.txt"

" деми + ловато + 365 + диас + до + ан + 1015 *" это название книги, но я вижу много информации по URL, которую просто не могу предоставить, и, конечно, она меняется от заголовка к заголовку. Одно из решений, которое я решил, было возможным - это POST в строке поиска заголовок, который я искал, и найти его на странице результатов, но я не знаю, лучший ли это подход, так как на самом деле, я впервые работать со соскобами.

У кого-то есть совет, как мне это сделать. Все, что я мог найти, это как отбросить все продукты для сравнения цен, собрать информацию c обо всех этих продуктах и ​​тому подобное, но ничего о поиске специфика c продуктов .

Спасибо за любые замечания, это очень важно для меня, и извините за все, я не очень настоящий пользователь и не являюсь носителем английского языка sh.

Не стесняйтесь делать мне любые советуйте о поведении пользователя, будьте лучше, я всегда стремлюсь к этому.

Ответы [ 2 ]

2 голосов
/ 27 января 2020

Вы должны использовать правило , доступное в рамках терапии. Это поможет вам определить, как перемещаться по сайту и его под-сайту. Кроме того, вы можете настроить другие теги, такие как span или div, кроме тегов привязки, чтобы искать URL ссылки. Таким образом, дополнительные параметры запроса в ссылке будут заполняться сеансом scrapy, поскольку он эмулирует щелчок по гиперссылкам. Если вы пропустите дополнительные параметры запроса в URL-адресе, высока вероятность того, что вы будете заблокированы

Как в правилах скрапа используются правила?

1 голос
/ 27 января 2020

Вам вообще не нужно переходить по этой длинной ссылке, часто различные параметры связаны с вашим текущим сеансом или настройками / фильтрами, и вы можете оставить только то, что вам нужно.

Вот что я имел в виду :

Вы можете получить тот же результат, используя эти 2 URL:

https://www.amazon.com.br/s?k=demi+lovato+365+dias+do+ano

https://www.amazon.com.br/s?k=demi+lovato+365+dias+do+ano&adgrpid=86887777368&hvadid=392971063429&hvdev=c&hvlocphy=9047761&hvnetw=g&hvpos=1t1&hvqmt=e&hvrand=11390662277799676774&hvtargid=kwd-597187395757&hydadcr=5658_10696978&tag=hydrbrgk-20&ref=pd_sl_21pelgocuh_e%2Frobot.txt

Если обе ссылки дают одинаковые результаты, то все, иначе вам определенно придется поиграть с разными параметрами, вы не можете предсказать поведение веб-сайта, не выполнив тест, а наличие большого количества параметров является проблемой, тогда попробуйте что-то вроде :

from urllib.parse import quote_plus

base_url = "https://www.amazon.com.br"
link = base_url + "/k=%s&adgrpid=%s&hvadid=%s" % ( quote_plus(title), '86887777368', '392971063429' )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...