本书采用简洁强大的Python语言,介绍了网络数据采集,并为采集新式网络中的各种数据类型提供了全面的指导。第一部分重点介绍网络数据采集的基本原理:如何用Python从网络 …… [ 展开全部 ]
  • 作者:米切尔 (Ryan Mitchell)
  • 出版社:人民邮电出版社
  • 定价:CNY 59.00
  • ISBN:9787115416292
  • 2018-07-13 10:49:34 摘录
    上面的爬虫先进入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中止程序,它是不会停止的(很长时间也不会停止)。
    这条书摘已被收藏0
  • 2018-07-13 10:37:24 摘录
    在新建的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)
    这条书摘已被收藏0