我一直在为这个网站开发一个网络爬虫(http://www.bobaedream.co.kr/cyber/CyberCar.php?gubun=I&page=1)。但是我在抓取每个股票的标题时遇到了麻烦。我很确定 carinfo_title = carinfo.find_all('a',class _ ='title')的属性。
请查看随附的代码和网站代码,然后给我任何建议。
感谢。
(网站代码)
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()
答案 0 :(得分:1)
你有{em>多个元素和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。