【问题标题】:How to separate a list item in to separate variables如何将列表项分隔为单独的变量
【发布时间】:2018-06-13 15:41:07
【问题描述】:

我正在做一个网页抓取项目。

我遇到了一个问题,我运行了一个 for 循环来遍历一个列表,但它把它作为一个返回。

我的目标是将列表中的每个项目分开并将其保存为变量,将其显示在数据框中,但是,我面临的是一块文本。

我该怎么做

import requests
from bs4 import BeautifulSoup
import pandas

page_link = ("https://www.autotrader.co.uk/car-search?sort=price-asc&"
             "radius=1500&postcode=lu15jf&onesearchad=Used&"
             "onesearchad=Nearly%20New&onesearchad=New&make=AUDI&model=A5"
             "&price-to=8500&year-from=2008&maximum-mileage=90000"
             "&transmission=Automatic&exclude-writeoff-categories=on")

request = requests.get(page_link)
conn = request.content
soup = BeautifulSoup(conn, "html.parser")

cars = soup.find_all("h2", {"class":"listing-title title-wrap"})
cars_specs = soup.find_all('ul', {"class" :'listing-key-specs '})

carlist = []
for car, specs in zip(cars, cars_specs):
    dic = {}
    dic["Car Model"]=car.find("a", {"class": "js-click-handler listing-fpa-link"}).text
    dic["Specs"] = specs.text
    carlist.append(dic)

df = pandas.DataFrame(carlist)
df

【问题讨论】:

  • 你的数据框df是什么样的?
  • 您能发布您的预期输出吗?
  • 我添加了数据框的图片,我想要的输出是每个规范都打印在单独的列中
  • 希望我的回答有帮助

标签: list pandas web-scraping python-requests


【解决方案1】:

我认为这项工作会做什么

df1 = df.Specs.str.split(pat='\n', expand=True)
df1 = df1.replace('',np.nan)

df1 = df1.dropna(axis=1, how='all')
df1.columns = ['Spec_' + str(x)  for x in list(df1)]

df1
          Spec_1 Spec_2        Spec_3 Spec_4  Spec_5     Spec_6  Spec_7
0  2008 (08 reg)  Coupe  77,500 miles   2.7L  187bhp  Automatic  Diesel
1  2008 (58 reg)  Coupe  69,170 miles   2.7L  187bhp  Automatic  Diesel
2  2008 (58 reg)  Coupe  84,700 miles   2.7L  187bhp  Automatic  Diesel
3  2008 (58 reg)  Coupe  53,800 miles   2.7L  187bhp  Automatic  Diesel
4  2009 (09 reg)  Coupe  85,000 miles   2.7L  187bhp  Automatic  Diesel
5  2008 (08 reg)  Coupe  74,000 miles   3.2L  261bhp  Automatic  Petrol
6  2008 (08 reg)  Coupe  67,000 miles   3.2L  261bhp  Automatic  Petrol
7           2008  Coupe  90,000 miles   2.7L  187bhp  Automatic  Diesel
8  2008 (58 reg)  Coupe  59,277 miles   2.7L  187bhp  Automatic  Diesel
9  2009 (09 reg)  Coupe  78,412 miles   2.7L  187bhp  Automatic  Diesel

【讨论】:

  • 谢谢你,这正是我所需要的。您还需要添加 import numpy as np 才能正常工作。
猜你喜欢
  • 2023-02-04
  • 1970-01-01
  • 2021-11-17
  • 1970-01-01
  • 2014-07-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多