编辑!:我将解释我想要实现的目标。我有这个代码从主搜索页面废弃数据。 http://pastebin.com/c6hRN6ac。它在主页面上搜索包含我想要的数据的div。然后我将它们分配给var名称,年份,引擎,里程等。
data = [name,year,engine,mileage,link,transm,status,price]
此文本数据列表转到
conn.execute("INSERT INTO Cars VALUES (NULL,?,?,?,?,?,?,?,?)",data)
它按照我的计划工作。(在主搜索页面上有更少的数据,然后详细的车页)
现在我正在获取所有车辆ID链接,将它们与页面网址相结合,并尝试使用此代码http://pastebin.com/hRkmMkHZ
循环每个车辆ID以获取详细信息现在def get_car_id():
有效。问题出在def cars_info():
我想使用我在第一个代码中使用的相同概念:
data = [name,year,engine,mileage,link,transm,status,price]
conn.execute("INSERT INTO Cars VALUES (NULL,?,?,?,?,?,?,?,?)",data)
现在第二个代码给了我一个输出:
[' მწარმოებელი : BMW']
[' მოდელი : M3 ']
[' გამოშვების წელი : 2003 / 03']
[' კატეგორია : სედანი']
[' საწვავის ტიპი : ბენზინი']
[' ძრავის მოცულობა : 3200 ']
[' გარბენი : 141 კმ.']
[' ცილინდრები : 8']
[' გადაცემათა კოლოფი : მექანიკური']
[' წამყვანი თვლები : უკანა']
[' კარები : 4/5']
[' საჭე : მარცხნივ']
[' მანქანის ფერი : ნაცრისფერი']
[' სალონის ფერი : შავი']
[' აირბეგი : 8']
['VIN : WBS-BL91000JP85609']
[' მწარმოებელი : MERCEDES-BENZ']
[' მოდელი : S 320 ']
[' გამოშვების წელი : 2001']
[' კატეგორია : სედანი']
[' საწვავის ტიპი : გაზი/ბენზინი']
[' ძრავის მოცულობა : 3200 ']
[' გარბენი : 160000 კმ.']
[' ცილინდრები : 6']
[' გადაცემათა კოლოფი : ტიპტრონიკი']
[' წამყვანი თვლები : უკანა']
[' კარები : 4/5']
[' საჭე : მარჯვნივ']
[' მანქანის ფერი : შავი']
[' სალონის ფერი : შავი']
[' აირბეგი : 12']
['VIN : ']
[' მწარმოებელი : HONDA']
[' მოდელი : Cr-v ']
[' გამოშვების წელი : 2003']
[' კატეგორია : ჯიპი']
[' საწვავის ტიპი : ბენზინი']
[' ძრავის მოცულობა : 2400 ']
[' გარბენი : 267200 კმ.']
[' ცილინდრები : 4']
[' გადაცემათა კოლოფი : ავტომატიკა']
[' წამყვანი თვლები : 4x4']
[' კარები : 4/5']
[' საჭე : მარცხნივ']
[' მანქანის ფერი : ლურჯი']
[' სალონის ფერი : შავი']
[' აირბეგი : 4']
['VIN : ']
[' მწარმოებელი : BMW']
[' მოდელი : 325 ']
[' გამოშვების წელი : 2003']
[' კატეგორია : სედანი']
[' საწვავის ტიპი : ბენზინი']
[' ძრავის მოცულობა : 2500 ']
[' გარბენი : 169 კმ.']
[' ცილინდრები : 6']
[' გადაცემათა კოლოფი : მექანიკური']
[' წამყვანი თვლები : 4x4']
[' კარები : 4/5']
[' საჭე : მარცხნივ']
[' მანქანის ფერი : ცისფერი']
[' სალონის ფერი : შავი']
[' აირბეგი : 8']
['VIN : ']
一辆车的详细信息以VIN
现在我如何使用相同的概念来保存像这样的列表中的每辆车的数据
data = [('BMW','M3','2003 / 03','სედანი','ბენზინი','3200','141 კმ.','8','მექანიკური','უკანა','4/5','მარცხნი','ნაცრისფერი','შავი','8','WBS-BL91000JP85609') , ('MERCEDES-BENZ','S 320','2001','სედანი','გაზი/ბენზინი','3200','160000 კმ.','6','ტიპტრონიკი','უკანა','4/5','მარჯვნივ','შავი','შავი','12','')]
等我在def get_car_id()
所以我可以使用此代码将数据插入数据库
conn.execute("INSERT INTO Cars VALUES (NULL,?,?,?,?,?,?,?,?)",data)
HTML看起来像这样:
<tr>
<th class="th-left">
<div class="th-key"> Manufacturer</div>
<div class="th-value"> NISSAN</div>
</th>
<th class="th-right">
<div class="th-key"> ABS</div>
<div class="th-value"><i class='fa fa-check'></i></div>
</th>
</tr>
<tr>
<th class="th-left">
<div class="th-key"> Model</div>
<div class="th-value"> X-Trail </div>
</th>
<th class="th-right">
<div class="th-key"> El. Windows</div>
<div class="th-value"><i class='fa fa-check'></i></div>
</th>
</tr>
<tr>
<th class="th-left">
<div class="th-key"> Prod. Year</div>
<div class="th-value"> 2002</div>
</th>
<th class="th-right">
<div class="th-key"> Air Condintioner</div>
<div class="th-value"><i class='fa fa-check'></i></div>
</th>
</tr>
我只做<th class="th-left">
答案 0 :(得分:0)
如果您想单独使用所有值,请使用div:
拉取值from bs4 import BeautifulSoup
soup = BeautifulSoup(h)
for row in soup.select("table tr th"):
a, b = row.select_one("div.th-key"), row.select_one("div.th-value")
print a.text,b.text
它为您提供了所有数据:
Manufacturer NISSAN
ABS
Model X-Trail
El. Windows
Prod. Year 2002
Air Condintioner
Category Jeep
Climate System
Fuel Type Gas/Petrol
Leather interior
Engine Volume 2000
Disks:
Mileage 140000 km.
Navigation System:
Cylinders 4
Central Lock:
Gear Type Automatic
Hatch:
Drive Wheels 4x4
Alarm:
Doors 4/5
Board Computer:
Wheel WHELL right
Hydraulics:
Car color silver
Anti skid:
Interior color grey
Chair Warming:
Airbags 0
Parking Control:
VIN
უკანა ხედვის კამერა:
或者:
from bs4 import BeautifulSoup
soup = BeautifulSoup(h)
for row in soup.select("table tr"):
a, b = row.select_one("th div.th-key"), row.select_one("th div.th-value")
if a:
print a.text.strip(),b.text.strip()
这给了你:
Manufacturer NISSAN
Model X-Trail
Prod. Year 2002
Category Jeep
Fuel Type Gas/Petrol
Engine Volume 2000
Mileage 140000 km.
Cylinders 4
Gear Type Automatic
Drive Wheels 4x4
Doors 4/5
Wheel WHELL right
Car color silver
Interior color grey
Airbags 0
VIN
如果您只想要左侧标题中的th值文本:
h = """<table>
<tr>
<th class="th-left">
<div class="th-key"> Manufacturer</div>
<div class="th-value"> NISSAN</div>
</th>
<th class="th-right">
<div class="th-key"> ABS</div>
<div class="th-value"><i class='fa fa-check'></i></div>
</th>
</tr>
<tr>
<th class="th-left">
<div class="th-key"> Model</div>
<div class="th-value"> X-Trail </div>
</th>
<th class="th-right">
<div class="th-key"> El. Windows</div>
<div class="th-value"><i class='fa fa-check'></i></div>
</th>
</tr>
<tr>
<th class="th-left">
<div class="th-key"> Prod. Year</div>
<div class="th-value"> 2002</div>
</th>
<th class="th-right">
<div class="th-key"> Air Condintioner</div>
<div class="th-value"><i class='fa fa-check'></i></div>
</th>
</tr>
</table>"""
使用上面的html:
from bs4 import BeautifulSoup
soup = BeautifulSoup(h)
print([d.text.strip() for d in soup.select("table tr th.th-left div.th-value")])
给你:
[u'NISSAN', u'X-Trail ', u'2002']