Как создать веб-сканер для получения нескольких страниц из agoda с помощью python3

#python #scrapy #web-crawler #webpage

#python #scrapy #веб-сканер #HTML

Вопрос:

Я новичок здесь. Недавно я хотел получить данные из Agoda, и у меня возникла проблема, которая agoda.com не указывайте URL (или href) «следующей страницы». Поэтому я понятия не имею, как изменить страницу. Теперь я получаю данные только со страницы 1, но мне нужны данные со страницы2, страницы3… Кто-нибудь мне поможет. Мне нужен совет, инструменты или другие. Кстати, я использую python3 и win10.Пожалуйста, помогите мне и спасибо. Ниже приведен мой текущий код.

 import requests
import pandas as pd

import csv
from bs4 import BeautifulSoup
from pandas import Series,DataFrame
import unicodecsv

def name1():
    url="https://www.agoda.com/zh-tw/pages/agoda/default/DestinationSearchResult.aspx?asq=+ZePx52sg5H8gZw3pGCybdmU7lFjoXS+axz+UoF4+bAw3oLIKgWQqUpZ91GacaGdIGlJ+fxiotUg7cHef4W8WIrREFyK+HWl/tRKlV7J5kUcPb7NK6DnLacMaVs1qlGagsx8liTdosF5by/mvF3ZvJvZqOWnEqFCm0staf3OvDRiEYy+VBJyLXucnzzqZp/cBP3+KCFNOTA+r9ARInL665pxj/A+ylTfAGs1qJCjm9nxgYafyEWBFMPjt2sg351Bamp;city=18343amp;cid=1732641amp;tag=41460a09-3e65-d173-1233-629e2428d88eamp;gclid=Cj0KEQjwvve_BRDmg9Kt9ufO15EBEiQAKoc6qlyYthgdt9CgZ7a6g6yijP42n6DsCUSZXvtfEJdYqiAaAvdW8P8HAQamp;tick=636119092231amp;isdym=trueamp;searchterm=墾丁amp;pagetypeid=1amp;origin=TWamp;cid=1732641amp;htmlLanguage=zh-twamp;checkIn=2016-10-20amp;checkOut=2016-10-21amp;los=1amp;rooms=1amp;adults=2amp;children=0amp;isFromSearchBox=trueamp;ckuid=1b070b17-86c2-4376-a4f5-d3b98fc9cf45" 
    source_code=requests.get(url)                                         
    plain_text=source_code.text                                           
    soup=BeautifulSoup(plain_text,"lxml")                                        
    hotelname=soup.find_all("h3",{"class":"hotel-name"})
    f = csv.writer(open("test.csv", "w",newline=''))
    f.writerow(["hotelname","address"]) 
    p = []
    for N in hotelname:
        a=N.string.strip()
        f.writerow([a])
  

Ответ №1:

Внимательно изучите в инструментах разработки браузеров, что происходит, когда вы нажимаете кнопку Далее.

У него есть событие click, которое отправляет запрос post xhr с множеством параметров. Одним из параметров является PageNumber . Большинство значений параметров получить просто, возможно, за SearchMessageID исключением того, что вам нужно найти где-нибудь на странице или генерируется javascript.