【网络爬虫】【python】网络爬虫(五):scrapy爬虫初探——爬取网页及选择器

        在上一篇文章的末尾,我们创建了一个scrapy框架的爬虫项目test,现在来运行下一个简单的爬虫,看看scrapy爬取的过程是怎样的。


一、爬虫类编写(spider.py)

from scrapy.spider import BaseSpider

class test(BaseSpider):
    name = "test"
    allowed_domains = ["yuedu.baidu.com"]
    start_urls = ["http://yuedu.baidu.com/book/list/0?od=0&show=1&pn=0"]

    def parse(self, response):
        print response.url

二、爬网页:运行scrapy项目

        这里选择从命令行启动运行项目的方式,一定要注意工程目录结构能够运行scrapy命令的只有scrapy安装的根目录下

        cd到scrapy的根目录,我的是D:\Python27\,然后运行scrapy命令:scrapy runspider test\test\spiders\spider.py。(或者直接运行工程项目的命令scrapy crawl test),可以看到爬虫爬取的过程有一些debug信息输出:



        scrapy给爬虫的start_urls属性中的每个url创建了一个scrapy.http.Request对象,指定parse()方法为回调函数。当这些Request被调度并执行,之后通过parse()返回scrapy.http.Response对象,返回给爬虫。


三、取网页:网页解析

        这里用shell爬取网页,cd到项目的根目录test\下,在cmd中输入:

scrapy shell http://yuedu.baidu.com

可以看到结果如下图:



刚才的整个过程中,shell载入url后获得了响应,由本地变量response存储响应结果。

来看下response的内容,输入response.body可以查看response的body部分,即抓到的网页内容:



要查看head部分,输入response.headers:



四、用选择器xpath提取网页

        之前提取网页是用的正则,这里选择器xpath提供了更好的接口。shell有一个selector对象sel,可以根据返回的数据类型自动选择最佳的解析方式(XML or HTML),无需再指明了。

1.抓取网页标题,即<titie>标签,在命令行里输入:response.selector.xpath(‘//title’)


或者:response.xpath(‘//title’)



2.抓取<title>下的<text>内容,命令sel.xpath(‘//title/text()’).extract()



先写到这里,下篇文章给出一个关于scrapy项目的完整实例。


原创文章,转载请注明出处:http://blog.csdn.net/dianacody/article/details/39753933


一款可以复制别人开区网站的软件,输入地址即可下载整个网站源码程序,php asp 之类的动态程序无法下载。只能下载html htm 的静态页面文件! Teleport Ultra 所能做的,不仅仅是离线浏览某个网页,它可以从 Internet 的任何地方抓回你想要的任何文件。 它可以在你指定的时间自动登录到你指定的网站下载你指定的内容,你还可以用它来创建某个网站的完整的镜象,作为创建你自己的网站的参考。 可以简单快速保存你所喜欢的网页,是仿制网站的利器! 如果遇到屏蔽了浏览器保存网页,那么用网页整站下载器是一种很理想的办法。 使用网页整站下载器保存网页就简单多了,软件会自动保存所有的页面,但有时候由于软件功能过于强大,会导致很多不必要的代码、图片、js文件都一并保存到网页中 eleport Ultra 支持计划任务,定时到指定网站下载指定的内容,经由其保存的网站,保持源站点了的 CSS 样式、脚本功能,超链接也都替换为本地链接以方便浏览。 Teleport Ultra 实际就是一个网络蜘蛛(网络机器人),自动从网络撷取特定的资料。使用它可以在本地创建完整的网站镜像或副本,共有6种工作模式: 1) 在硬盘中创建一个可浏览的网站副本; 2) 复制一个网站,包括网站的目录结构; 3) 在一个网站中搜索指定的文件类型; 4) 从一个中心站点探测每一个链接的站点; 5) 在已知地址下载一个或多个文件; 6) 在一个网站中搜索指定的关键字。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值