#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.