此书摘本创建于:2017-08-29
Python网络数据采集
本书采用简洁强大的Python语言,介绍了网络数据采集,并为采集新式网络中的各种数据类型提供了全面的指导。第一部分重点介绍网络数据采集的基本原理:如何用Python从网 …… [ 展开全部 ]
- 作者:米切尔 (Ryan Mitchell)
- 出版社:人民邮电出版社
- 定价:CNY 59.00
- ISBN:9787115416292
-
上面的爬虫先进入start_urls里面的两个页面,收集信息,然后停止。虽然这个爬虫很单,但是如果你有许多URL需要采集,,Scrap这种用法会非常适合。为了让爬虫更加完善,你需要定义一些规则让 Scrap可以在每个页面查找URL链接:
from scrapy. contrib. spiders import CrawlSpider, Rule
from wikiSpider.items import Article
from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor
cLass ArticleSpider(CrawlSpider):
name="article
allowed_domains =["en. wikipedia. org"]
start_urls=["http://en.wikipedia.org/wiki/pyth
on_
%28programming_language%29"]
rules= [Rule(SgmlLinkExtractor (allow=('(/wiki/)((?!: ).)*$'),),
callback="parse_item", follow=True)]
def parse_item (self,response):
item= Article()
title= response. xpath('//h1/text()')[0]. extract()
print("Title is:"+title)
item['title']= title
return item
虽然这个爬虫和前面那个爬虫的启动命令一样,但是如果你不用Ctrl+C中止程序,它是不会停止的(很长时间也不会停止)。 -
在新建的articleSpider.py文件里面,写如下代码:
from scrap.selector import Selector
from scrap import Spider
from wikiSpider.items import Article
class ArticleSpider(Spider)
name = "article"
allowed_domains ["en. wikipedia. org"]
start_urls = ["http://en.wikipediaorg/wiki/main_page",
"http://en.wikipedia.org/wiki/python_%28
programing_language%29"]
def parse(self, response):
item= Article()
title= response. xpath('//h1/text()')[0].extract()
print("Title is:"+title)
item['title']= title
return item
你可以在wikiSpider主目录下用如下命令运行ArticleSpider:
$ scrapy crawl article
这行命令会根据条目名称name(这里就是article)来调用爬虫。
陆续出现的调试信息中应该会包含这两行结果:
Title is: Main Page
Title is: Python (programming language)