【发布时间】:2019-09-30 22:53:12
【问题描述】:
我正在尝试使用 scrapy 和 python 抓取我的第一个网站 (https://news.ycombinator.com/jobs)。我需要提取的信息如下: - 正在招聘的公司名称 - 公司所在地 - 广告的位置
页面 html 中这些字段没有单独的标签。文本没有特定的模式。 例如 ZeroCater (YC W11) 正在招聘 SF 的首席工程师:必须热爱美食
单独的正则表达式不足以提取此信息。有没有什么有效又简单的办法解决这个问题?
我已经尝试过 python 正则表达式。我还使用 nltk 研究了 NLP 和文本分类。但是nltk会增加代码的复杂度,而且比较耗时。
【问题讨论】:
-
不明白,为什么正则表达式不足以提取。
ZeroCater不是公司,SF不是您给定示例中的位置吗? -
为了记录,HackerNews 有一个 API,你不必刮网站:github.com/HackerNews/API
-
这个问题太笼统了,和网页抓取或scrapy无关。您想从非结构化文本中提取结构化数据。没有办法做到这一点,这将适合一个单一的答案。您需要一个智能的自然语言处理系统,该系统经过培训可以理解职称和位置。您应该查看
nltk包。或者,您可以只覆盖一些模式并提取 一些 数据,但当您解析的文本没有严格的结构时,您将无法获得高覆盖率。
标签: python regex web-scraping scrapy