2016-10-19 1 views
0

여기 새로 왔습니다. 최근 Agoda에서 데이터를 가져오고 싶습니다. agoda.com에서 "다음 페이지"의 URL (또는 href)을 제공하지 않는다는 문제가 있습니다. 그래서 나는 페이지를 바꿀 생각이 없다. 이제, 1 페이지의 데이터 만 가져 오지만, page2, page3의 데이터가 필요합니다 ... 누구든지 나를 도와줍니다. 조언이나 도구 등이 필요합니다. 그건 그렇고, 난 python3 및 win10.Please 날 ​​도와 줘서 고마워. 다음은 현재 내 코드입니다.python3을 사용하여 agoda에서 여러 페이지를 가져 오는 웹 크롤러를 만드는 방법

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=%2bZePx52sg5H8gZw3pGCybdmU7lFjoXS%2baxz%2bUoF4%2bbAw3oLIKgWQqUpZ91GacaGdIGlJ%2bfxiotUg7cHef4W8WIrREFyK%2bHWl%2ftRKlV7J5kUcPb7NK6DnLacMaVs1qlGagsx8liTdosF5by%2fmvF3ZvJvZqOWnEqFCm0staf3OvDRiEYy%2bVBJyLXucnzzqZp%2fcBP3%2bKCFNOTA%2br9ARInL665pxj%2fA%2bylTfAGs1qJCjm9nxgYafyEWBFMPjt2sg351B&city=18343&cid=1732641&tag=41460a09-3e65-d173-1233-629e2428d88e&gclid=Cj0KEQjwvve_BRDmg9Kt9ufO15EBEiQAKoc6qlyYthgdt9CgZ7a6g6yijP42n6DsCUSZXvtfEJdYqiAaAvdW8P8HAQ&tick=636119092231&isdym=true&searchterm=%E5%A2%BE%E4%B8%81&pagetypeid=1&origin=TW&cid=1732641&htmlLanguage=zh-tw&checkIn=2016-10-20&checkOut=2016-10-21&los=1&rooms=1&adults=2&children=0&isFromSearchBox=true&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]) 

답변

0

브라우저 개발 도구에서 다음 버튼을 클릭하면 어떻게되는지 자세히 살펴보십시오.

매개 변수가 많은 xhr 게시 요청을 보내는 click 이벤트가 있습니다. 매개 변수 중 하나는 PageNumber입니다. 매개 변수의 값은 대부분 SearchMessageID을 제외하고 페이지의 어딘가에서 찾아야하거나 자바 스크립트에 의해 생성됩니다.

관련 문제