php网页抓取图片(Python中有多个多个类型的页面对象用子类属性)
优采云 发布时间: 2021-12-29 09:03php网页抓取图片(Python中有多个多个类型的页面对象用子类属性)
此类元素用于标识产品页面,即使爬虫对相关产品的内容不感兴趣。
为了跟踪多种页面类型,您需要在 Python 中拥有多种类型的页面对象。这是通过两种方式实现的。
如果页面相似(它们的内容类型基本相同),则可能需要在现有页面对象中添加 pageType 属性:
class Website: """所有文章/网页的共同基类""" def __init__(self, type, name, url, searchUrl, resultListing, resultUrl, absoluteUrl, titleTag, bodyTag): self.name = name self.url = url self.titleTag = titleTag self.bodyTag = bodyTag self.pageType = pageType
如果在类 SQL 的数据库中对这些页面进行排序,则此模式类型意味着这些页面应存储在同一个表中,并添加了一个额外的 pageType 列。
如果抓取不同的页面或内容(它们收录
不同类型的字段),则需要为每种页面类型创建一个新对象。当然,有些东西是所有网页共有的——它们都有一个 URL,它们也可能有一个名称或页面标题。这种情况非常适合子类:
class Website: """所有文章/网页的共同基类""" def __init__(self, name, url, titleTag): self.name = name self.url = url self.titleTag = titleTag
这不是您的爬虫直接使用的对象,而是您的页面类型将引用的对象:
class Product(Website): """产品页面要抓取的信息""" def __init__(self, name, url, titleTag, productNumber, price): Website.__init__(self, name, url, TitleTag) self.productNumberTag = productNumberTag self.priceTag = priceTag class Article(Website): """文章页面要抓取的信息""" def __init__(self, name, url, titleTag, bodyTag, dateTag): Website.__init__(self, name, url, titleTag) self.bodyTag = bodyTag self.dateTag = dateTag
该产品页面扩展了Website 基类,增加了仅适用于产品的productNumber 和price 属性,而Article 类增加了不适用于产品的body 和date 属性。
您可以使用这两个类别来抓取商店网站,其中除了产品之外还可能收录
博客文章或新闻稿。
希望以上知识点可以帮助到大家,也感谢各位攻城狮对我的支持。