首页 > 解决方案 > 将结果导出到 excel 文件 python BeautifulSoup

问题描述

在@αԋɱҽԃ αмєяιcαη 的大力支持下,我有以下代码

import requests
from bs4 import BeautifulSoup
import pandas as pd

masterlist = []

def main(url):
    with requests.Session() as req:
        for item in range(1, 2):
            r = req.get(url.format(item))
            print(r.url)
            soup = BeautifulSoup(r.content, 'html.parser')
            s in soup.findAll('p', class_='star-rating')
            goal = [(x.h3.a['title'], x.select_one("p.price_color").text, x.select_one("p.star-rating")['class'][-1], 'http://books.toscrape.com' + x.a.img['src'].replace('..',''))
                    for x in soup.select("li.col-xs-6")]
            #print(goal)
            masterlist.append(goal)

main("http://books.toscrape.com/catalogue/page-{}.html")
pd = df.DataFrame(masterlist)
df

结果是完美的。现在我需要学习如何将结果导出到 excel 文件?请原谅我,因为我正在一步一步地学习。我想我必须使用 pandas 包.. 在那种情况下使用 pandas 会很容易吗?

标签: pythonpandasbeautifulsoup

解决方案


from bs4 import BeautifulSoup
import requests


def main(url):
    with requests.Session() as req:
        for item in range(1, 2):
            r = req.get(url.format(item))
            print(r.url)
            soup = BeautifulSoup(r.content, 'html.parser')
            goal = [(x.h3.a.text, x.select_one("p.price_color").text, x.select_one("p.star-rating").attrs.items())
                    for x in soup.select("li.col-xs-6")]
            try:
                print(list(goal[0][2])[0][1][1])
            except TypeError:
                pass


main("http://books.toscrape.com/catalogue/page-{}.html")

推荐阅读