我正在从汽车网站上抓取数据以获取价格。现在,我正在通过创建两个单独的列表来解决这个问题;一个是定价数据,另一个是汽车型号数据。最终,我想获取每个列表并将两个列表连接在一起以创建一个 CSV。 我解决这个问题的具体步骤如下:
- 建立与网站的连接
- 创建两个空列表以将数据写入其中
- 从页面的每个部分选择正确的数据
- 迭代数据并将该数据存储到列表中(这是我遇到问题的地方)
- 最终,我会将这两个列表合并为一个 CSV。
from bs4 import BeautifulSoup
import urllib2
#1) establishing a connection to the website
wiki = "http://www.morong.com/used-inventory/index.htm?start=16&"
req = urllib2.Request(wiki)
page = urllib2.urlopen(req)
soup = BeautifulSoup(page, 'lxml')
#2) creating two empty lists to write the data into
valueHolder = []
nameHolder = []
#3) selecting the correct data from each part of the page
value = soup.findAll("span", { "class" : "value" })
name = soup.findAll("a", {"class" : "url"})
#4) iterates over rows and turns each row into a text field
for row in value:
valueholder = row.text
for row in name:
nameHolder = row.text
print(valueholder)
print(nameHolder)
当我打印 valueHolder
和 nameHolder
时,我只返回每个 for 循环的最后一行。如何打印所有值?
最佳答案
使用 zip() 函数连接这两个列表:
value = [row.text for row in value]
name = [row.text for row in name]
zipped_value_name = list(zip(value, name))
for row in zipped_value_name:
print(row)
您还可以创建字典而不是列表dict_not_list = dict((zip(name, value))
关于python - 在 Python 中组合两个单独的 WebScraped 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46791931/