如何从 Beautiful Soup 网站抓取的结果中将 Django 模型添加到数据库中?

Posted

技术标签:

【中文标题】如何从 Beautiful Soup 网站抓取的结果中将 Django 模型添加到数据库中?【英文标题】:How to add Django models into the database from the results of a Beautiful Soup website scrape? 【发布时间】:2015-09-21 22:37:25 【问题描述】:

我已经编写了一些 Beautiful Soup (http://www.crummy.com/software/BeautifulSoup/bs4/doc/) 代码来为他们所有的书刮取书店网站,其中包括标题、作者和 isbn。目前我只是将输出打印到屏幕上,以确保我正确抓取。然而,我的最终目标是把我搜集的信息制作成单独的教科书放到我的 Django 数据库中。

有人可以告诉我如何开始这项工作或向我指出可以帮助我的教程吗?

谢谢。

【问题讨论】:

【参考方案1】:

如果您有数据,您只需运行一个 for 循环并创建并保存您的 Book 实例:

# you'll need to create your instances and then save them
for book in data:
    book = Book(title=book.title, author=book.author, isbn=book.isbn)
    book.save()

在没有看到您的数据的情况下,我无法提供任何具体细节,但您很可能必须构建上面的 data 对象。我会创建一个数组,然后构建字典对象以插入到数组中

data = []

for object in scrape:
    object = 
        'title': scrape.title,
        'author': scrape.author,
        'isbn': scrape.isbn,
    
    data.append(object)

可能是这样的,但这实际上取决于您正在抓取的数据。希望对您有所帮助!

【讨论】:

这很有帮助。所以我的下一步应该是为每本书制作一系列字典。然后我可以将模型中的每个变量分配给数组中每个对象的字典对象中的一个值? 我实现了你给我的解决方案,效果很棒!谢谢!

以上是关于如何从 Beautiful Soup 网站抓取的结果中将 Django 模型添加到数据库中?的主要内容,如果未能解决你的问题,请参考以下文章

如何解决用 Beautiful Soup 抓取网页却得到乱码的问题

使用需要登录的 Beautiful Soup 抓取网站

如何使用涉及html表的Beautiful Soup从页面中抓取产品信息[关闭]

Beautiful Soup 4并没有删除此网页上的所有html

启用以使用 Beautiful Soup 获取特定网站的 img 标签

Beautiful Soup