首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法以某种自定义的方式排列刮过的内容

无法以某种自定义的方式排列刮过的内容
EN

Stack Overflow用户
提问于 2020-07-14 12:59:39
回答 3查看 70关注 0票数 1

我正试着从carmodelload上刮本网页。我写的脚本可以完美地解析它们。然而,我不能做的是以一种定制的方式安排它们。

我试过:

代码语言:javascript
运行
复制
import requests
from bs4 import BeautifulSoup

r = requests.get("https://www.fjordsen.com/en-eu/vehicles/")
soup = BeautifulSoup(r.text,"lxml")
for items in soup.select(".card-default"):
    item_title = items.select_one("h4.card-title > a").get_text(strip=True)
    item_content = [item.text for item in items.select("td")[2:]]
    print(item_title,item_content)

此时脚本产生的输出:

代码语言:javascript
运行
复制
Audi ['A1', '75kg✓', 'A3', '75kg✓', 'A4', '90kg✓', 'A5', '90kg✓', 'A6', '100kg✓', 'A7', '100kg✓', 'A8', '100kg✓', 'Q2', '75kg✓', 'Q3', '75kg✓', 'Q5', '75kg✓', 'Q7', '75kg✓', 'Q8', '100kg✓']
BMW ['1Serie', '75kg✓', '2SerieActiveTourer', '75kg✓', '2SerieCabrio', '0kg', '2SerieCoupe', '75kg✓', '2SerieGrandCoupe', '75kg✓', '2SerieGrandTourer', '75kg✓', '3Serie', '75kg✓', '3SerieGranTurismo', '75kg✓', '3SerieTouring', '75kg✓', '4SerieCabrio', '0kg', '4SerieCoupe', '75kg✓', '4SerieGranCoupe', '75kg✓', '5Serie', '100kg✓', '5SerieTouring', '100kg✓', '6SerieGranTurismo', '100kg✓', '7Serie', '100kg✓', '8Serie', '75kg✓', '8SerieCabrio', '0kg', '8SerieGranCoupe', '75kg✓', 'i3', 'Checkinstructionmanualforyourcar', 'i8', 'Checkinstructionmanualforyourcar', 'i8Roadster', 'Checkinstructionmanualforyourcar', 'X1', '75kg✓', 'X2', '75kg✓', 'X3', '100kg✓', 'X4', '100kg✓', 'X5', '100kg✓', 'X6', '100kg✓', 'X7', '100kg✓', 'Z4', 'Checkinstructionmanualforyourcar']

我希望得到的输出(显示前几个):

代码语言:javascript
运行
复制
Audi A1 75kg
Audi A3 75kg
Audi A4 90kg
Audi A5 90kg
Audi A6 100kg

如何使脚本产生类似于第二个输出的输出?

EN

Stack Overflow用户

发布于 2020-07-14 13:37:04

下面是实现相同输出的另一种方法:

代码语言:javascript
运行
复制
import requests
from bs4 import BeautifulSoup

r = requests.get("https://www.fjordsen.com/en-eu/vehicles/")
soup = BeautifulSoup(r.text,"lxml")
for items in soup.select(".card-default"):
    item_title = items.select_one("h4.card-title > a").get_text(strip=True)
    for elem in items.select("tr"):
        model,weight = [item.text for item in elem.select("td")]
        print(item_title,model,weight)

产出如下:

代码语言:javascript
运行
复制
Audi Model Maximum roof load while driving
Audi A1 75kg  ✓
Audi A3 75kg  ✓
Audi A4 90kg  ✓
Audi A5 90kg  ✓
Audi A6 100kg  ✓
Audi A7 100kg  ✓
Audi A8 100kg  ✓
Audi Q2 75kg  ✓
Audi Q3 75kg  ✓
Audi Q5 75kg  ✓
Audi Q7 75kg  ✓
Audi Q8 100kg  ✓
BMW Model Maximum roof load
BMW 1 Serie 75kg  ✓
BMW 2 Serie Active Tourer 75kg  ✓
票数 1
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62895802

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档