脱机(本地)数据上的Python Scrapy
我的计算机上有一个270MB的数据集(10000个html文件)。我可以使用Scrapy在本地抓取此数据集吗?如何实现?SimpleHTTP服务器托管 如果您确实想在本地托管它并使用scrapy,您可以导航到它存储的目录并运行SimpleHTTPServer(端口8000,如下所示): 然后把scrapy指向127.0.0.1:8000脱机(本地)数据上的Python Scrapy,python,scrapy,web-crawler,Python,Scrapy,Web Crawler,我的计算机上有一个270MB的数据集(10000个html文件)。我可以使用Scrapy在本地抓取此数据集吗?如何实现?SimpleHTTP服务器托管 如果您确实想在本地托管它并使用scrapy,您可以导航到它存储的目录并运行SimpleHTTPServer(端口8000,如下所示): 然后把scrapy指向127.0.0.1:8000 $ scrapy crawl 127.0.0.1:8000 文件:// 另一种方法是将scrapy point直接指向文件集: $ scrapy crawl
$ scrapy crawl 127.0.0.1:8000
文件://
另一种方法是将scrapy point直接指向文件集:
$ scrapy crawl file:///home/sagi/html_files # Assuming you're on a *nix system
收尾
为scrapy设置刮板后(请参阅),只需运行爬虫程序:
$ scrapy crawl 127.0.0.1:8000
如果html文件中的链接是绝对链接而不是相对链接,那么这些链接可能无法正常工作。您需要自己调整文件。转到数据集文件夹:
import os
files = os.listdir(os.getcwd())
for file in files:
with open(file,"r") as f:
page_content = f.read()
#do here watever you want to do with page_content. I guess parsing with lxml or Beautiful soup.
没有必要去刮 你知道把奖金奖励给自己并不能给你赢得一顶帽子,对吗-P@MartijnPieters我正在给几个人发奖金。节日快乐!在某种程度上,我希望提问者会接受回答-/你的回答确实足够彻底,至少值得一些反馈!对于Python3.1:python-mHTTP.servers,Scrapy提供了很多功能,例如,获取相同字段的多个选项。当然,您可以复制所有这些功能,但这将是重新发明轮子。
import os
files = os.listdir(os.getcwd())
for file in files:
with open(file,"r") as f:
page_content = f.read()
#do here watever you want to do with page_content. I guess parsing with lxml or Beautiful soup.