2016-12-26 4 views
0

Я разрабатываю веб-гусеничный сайт для этого сайта (http://www.bobaedream.co.kr/cyber/CyberCar.php?gubun=I&page=1). Но у меня есть проблема с ползанием каждого названия акции. Я уверен, что есть атрибут для carinfo_title = carinfo.find_all ('a', class _ = 'title').Web Crawler не говорит об атрибуте, даже если он действительно имеет

Пожалуйста, ознакомьтесь с прилагаемым кодом и кодом сайта, а затем дайте мне совет.

Спасибо.

(код Веб-сайт)

https://drive.google.com/open?id=0BxKswko3bYpuRV9seTZZT3REak0

(Мой код)

from bs4 import BeautifulSoup 
import urllib.request 

target_url = "http://www.bobaedream.co.kr/cyber/CyberCar.php?gubun=I&page=1" 

def fetch_post_list(): 
    URL = target_url 
    res = urllib.request.urlopen(URL) 
    html = res.read() 
    soup = BeautifulSoup(html, 'html.parser') 
    table = soup.find('table', class_='cyber') 

    #Car Info and Link 
    carinfo = table.find_all('td', class_='carinfo') 
    carinfo_title = carinfo.find_all('a', class_='title') 

    print (carinfo_title) 

    return carinfo_title 

fetch_post_list() 

ответ

1

Вы несколько элементов с carinfo класса и для каждого "carinfo" вам нужно, чтобы добраться до название машины. Цикл по результату table.find_all('td', class_='carinfo'):

for carinfo in table.find_all('td', class_='carinfo'): 
    carinfo_title = carinfo.find('a', class_='title') 
    print(carinfo_title.get_text()) 

печать Будет:

미니 쿠퍼 S JCW 
지프 랭글러 3.8 애니버서리 70주년 에디션 
... 
벤츠 뉴 SLK200 블루이피션시 
포르쉐 뉴 카이엔 4.8 GTS 
마쯔다 MPV 2.3 

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

print([elm.get_text() for elm in soup.select('table.cyber td.carinfo a.title')]) 

, где строка внутри метода .select() - это CSS selector.

+0

Спасибо, я понял! Я ценю вашу помощь. –