2016-08-09 5 views
0

사용자가 python으로 검색하는 제품에 대한 데이터를 가져오고 싶습니다. 모든 URL에서 데이터를 가져올 수 있지만 검색에 따라 다릅니다. 해당 페이지로 이동하고 데이터 가져 오기 beautifulsoup를 사용하십시오.특정 페이지로 이동하는 방법 Beautifulsoup

나는 데이터 가져 오기이 시도 :

from bs4 import BeautifulSoup 
import requests 
import urllib2 

url="http://amazon.in" 
con=urllib2.urlopen(url).read()  
soup=BeautifulSoup(con) 
print soup.prettify() 

그러나 사용자가 아이폰 5S의 가격을 원하는 경우 다음 해당 제품 페이지로 이동하고 데이터를 얻을 것이다.

나는 어떻게 얻습니까?

답변

0

당신은 올바른 PARAMS를 통과하는 GET 요청을 수행해야합니다

import requests 
from bs4 import BeautifulSoup 

params = {"url":"search-alias=aps","field-keywords":"iphone 5"} 
url = "http://www.amazon.in/s/ref=nb_sb_noss_2" 


soup = BeautifulSoup(requests.get(url, params=params).content) 
ul = soup.select_one("#s-results-list-atf") 

UL은 모든 검색은 사용자가 페이지에 표시되는 결과가 포함됩니다. 코드를 실행하고 각 앵커 내부에서 h2 태그를 찾으면 페이지에서 볼 수있는 항목 이름/설명을 볼 수 있습니다.

In [6]: ul = soup.select_one("#s-results-list-atf") 

In [7]: for h2 in ul.select("li a h2"): 
    ...:   print(h2.text) 
    ...:  
Apple iPhone 5s (Space Grey, 16GB) 
Apple iPhone 5s (Silver, 16GB) 
Supra Lightning 8 Pin To Micro Usb Charge Sync Data Connector Adapter Iphone 5 Ipad 4 
OnePlus 3 (Graphite, 64GB) 
Apple iPhone 5 (Black-Slate, 16GB) 
ROCK 695029068729 Royce Series Shockproof Dual Layer Back Case Cover for Apple iPhone 5 5S,(Grey) 
Apple iPhone 5c (White, 8GB) 
iSAVE Soft Silicone Grid Design Back Case Cover For iPhone 5/5s (BLACK) 
iPaky AT15312 360 Protective Body Case with Tempered Glass for Apple iPhone SE 5 5S,(Black) 
Aeoss 9Pcs Open Pry Screwdriver Repair Tool Kit Set For iPhone 6 Plus 5 5s 5c 4 iPod. 
2 IN 1 Tempered Glass for Iphone 5 5s 5c Explosion Proof Tempered Glass (FRONT AND BACK) 
Itab iphone5sclearsoftgelly Imported Transparent Clear Silicone Jelly Soft Case Back Cover For Apple Iphone 5 5S 
Shivam Earphones EarPods Handsfree Headphones for Apple iPhone 4/4s/5/5s/6/6+ (White) 
USB Power Adapter Wall Charger&Data Cable for iPhone 5/5S/5C/6 
Generic Ios 7 Compatible Data Sync Charging Cable For Apple Iphone 5 5S 6 - White 
Tempered Glass Screen Protector Scratch Guard for Apple Iphone 5 5G 5s 
+0

UL = soup.select_one ("# S-의 결과리스트-ATF") ul.select H2에 대한 ("리 H2 ') 인쇄 (h2.text)의 작동 및되지 show list 객체에 select 메소드가 없습니다. –

+0

오류가 표시되면 내 코드를 사용하지 않습니다. * select *는 select_one *가 아니므로 어딘가에 코드를 혼합했습니다. –

+0

검색 URL을 얻을 수있는 방법은 입니다. 아마존 = http://www.amazon.in/s/ref=nb_sb_noss_2 만약 내가 플립 카르를 원한다면 어떻게 될까? –

관련 문제