Python 检测Craigslist上类似的帖子或广告

Python 检测Craigslist上类似的帖子或广告,python,algorithm,python-3.x,beautifulsoup,similarity,Python,Algorithm,Python 3.x,Beautifulsoup,Similarity,我想在Craigslist上搜索某个地区的公寓,将租金、位置等关键数据存储在数据库中(可能是sqlite,我还没有决定)。我是Python新手,但我发现使用请求和美化组来进行抓取非常容易,例如 哪个输出 https://post.craigslist.org/c/sdo?lang=en https://accounts.craigslist.org # //www.craigslist.org/about/sites / /hhh/ /apa/ /csd/apa/ /nsd/apa/ /esd/

我想在Craigslist上搜索某个地区的公寓,将租金、位置等关键数据存储在数据库中(可能是sqlite,我还没有决定)。我是Python新手,但我发现使用
请求
美化组
来进行抓取非常容易,例如

哪个输出

https://post.craigslist.org/c/sdo?lang=en
https://accounts.craigslist.org
#
//www.craigslist.org/about/sites
/
/hhh/
/apa/
/csd/apa/
/nsd/apa/
/esd/apa/
/ssd/apa/
#list
#pic
#grid
#map
/apa/index100.html
/search/apa/?sort=priceasc
/search/apa/?sort=pricedsc
/csd/apa/4481946343.html
/csd/apa/4481946343.html
/csd/apa/4481860479.html
/csd/apa/4481860479.html
/ssd/apa/4481935551.html
/ssd/apa/4481935551.html
/csd/apa/4437743340.html
/csd/apa/4437743340.html
...
通常,海报会“合法”地重新发布广告(例如,至少一周过去了),但有时会对广告进行轻微修改。我希望能够利用我的刮板看到的某种广告缓存来标记此类广告。我应该缓存什么来检测类似的帖子?

我知道有不止一种方法可以做到这一点,但我想知道Python社区是否有自己的“Python方法”来解决这个问题。例如,可能已经有了一个模块来做这类事情(尽管有HTML页面)

在没有回应的情况下,我的计划是拍摄每个广告并存储(1)全文和(2)每个图像的MD5散列,将每个数据段与广告的post id(例如4481946343)关联,然后设计一些判断相似性的启发式方法,例如“至少一个图像散列匹配,或者,具有5个或更多字母的单词之间有95%的匹配。”但在这一点上,我特别不喜欢创建自己的解决方案;我想一定有更好的,甚至是规范的方法


顺便说一句,我读过关于第三方API(如3TAPS)的文章,但我也读到CL已经对此类服务提起诉讼(并且胜诉);此外,我的项目非常简单,因此我更喜欢透明性和无依赖性的编码。

我认为使用散列不是一个好主意,因为像MD5这样的散列函数被设计为尽可能统一地覆盖编码域,因此,散列值之间不会有相似性的概念,即使只有一个比特会产生差异。然而,也存在一些问题


您可能想看看一些简单的文本分类方法。最简单的方法是建立一个比,这将导致每个广告文本的数字向量表示。然后,您可以使用或机器学习文献提供的任何工具计算相似性。

您基本上遇到了典型的电子邮件垃圾邮件检测问题。使用可用的工具,如Bayes过滤器。另外,对于这种类型的问题,DoffLIB很方便。请考虑是否希望Craigslist下一步起诉你。“您同意不使用或不提供与CL.[S]脚本交互的软件…禁止使用爬虫程序等”-我只是想对图像进行散列,因为我确实想检查图像的准确性。除非CL每次都应用压缩算法?那么你是对的,哈希将失败。一旦有人试图将
jpeg
保存为
gif
,调整图像大小,哈希图像就会受到影响。如果需要更高的精度,还需要一些健壮的图像匹配。
https://post.craigslist.org/c/sdo?lang=en
https://accounts.craigslist.org
#
//www.craigslist.org/about/sites
/
/hhh/
/apa/
/csd/apa/
/nsd/apa/
/esd/apa/
/ssd/apa/
#list
#pic
#grid
#map
/apa/index100.html
/search/apa/?sort=priceasc
/search/apa/?sort=pricedsc
/csd/apa/4481946343.html
/csd/apa/4481946343.html
/csd/apa/4481860479.html
/csd/apa/4481860479.html
/ssd/apa/4481935551.html
/ssd/apa/4481935551.html
/csd/apa/4437743340.html
/csd/apa/4437743340.html
...