scrapy程序(scrapy)

 --》安装scrapy框架
先su一下吧
>>python
python>import OpenSSL
python>import OpenSSL
python>quit()
>>sudo apt-get install python-dev
>>sudo apt-get install libevent-dev
>>apt-get install python-pip
>>pip install Scrapy
--》出现错误ERROR: Caught exception reading instance data Traceback (most recent call last):
在settings.py中增加代码DOWNLOAD_HANDLERS = {'s3': None,}
--》出现提示no active project
 cd到创建的scrapy工程即可
--》出现错误Error while obtaining start requests
在start_url中的url增加http://
--》出现错误name 'Selector' is not defined
加入from scrapy.selector import Selector
Traceback (most recent call last)
--》系统教程链接url
--》python_scrapy的安装
执行如下命令python,接下来就是import lxml, import OpenSS
sudo apt-get install python-dev
sudo apt-get install libevent-dev
apt-get install python-pip
pip install Scrapy
--》获取帮助
scrapy fetch --help
--》启动scrapy终端
scrapy shell ' http://scrapy.org' --nolog
--》shell中xpath某个
sel.xpath("//h3/text()").extract()[2]   //2表示列表的第三个 
sel.xpath("//title/text()").extract()   
--》打印为乱码问题
print u'\u4e0d\u662f\u4e71\u7801'
--》文件的操作
--》scrapy shell 中没有看到hxs和xxs
scrapy版本的问题
--》shell中重新浏览新的网址
--》shell中使用火狐浏览器浏览response
view(response), 右击火狐浏览器打开的网页右击选择Inspect Element进行视察元素
--》scrapy shell退出
按ctrl+D
--》scrapy设置在什么时候终止
--》scrapy设置爬行的规则
--》scrapy的第一个程序
    1.新建项目 scrapy startproject tutorial
    2.明确目标 修改items.py,添加自己的class
       头上改为 from scrapy.item import Item,Field #这地方是死的,通过创建
       pass下面增加                                #scrapy.item.Item类来声明,定义它的属性为                                                 #为scrapy.item.Field对象
class DmozItem(Item):       #更改DmozItem             
        title = Field()     #更改title
        link = Field()
        desc = Field()

    3.制作爬虫,先爬后取
       在spiders文件夹下dmoz_spider.py文件夹,保存在tutorial/spiders目录下,增加如下代码
from scrapy.spiders import Spider
from scrapy.selector import Selector

from tutorial.items import DmozItem #从tutorial文件夹下的items.py文件下导入DmozItem模块

class DmozSpider(Spider):
    name = "dmoz"                     #蜘蛛名称,唯一
    allowed_domains = ["dmoz.org"]    #允许范围,蜘蛛活动范围
    start_urls = [       #蜘蛛起始位置,放在哪儿
    ]

    def parse(self, response):
        sel = Selector(response)
        sites = sel.xpath('//ul/li')
        items = []
        for site in sites:
            item = DmozItem()
            item['title'] = site.xpath('a/text()').extract()
            item['link'] = site.xpath('a/@href').extract()
            item['desc'] = site.xpath('text()').extract()
            items.append(item)
        return items
    保存,在控制台运行代码 scrapy crawl dmoz  #启动蜘蛛
[scrapy] INFO: Spider closed (finished)表明运行成功
--》创建scrapy程序 scrapy startproject xxx
将自动创建xxx文件夹及下面创建xxx文件夹与scrapy.cfg 项目配置,并在下面生成scrapy.cfg,pipeline.py,item.py,spider,settings.py
spiders 放置spider的目录,一个蜘蛛笼子,里面都是蜘蛛
items.py 需要提取的数据结构定义文件,项目工人,对spider带来的信息进行处理 
pipelines.py 管道定义,对items提取的数据结构进一步处理,一个管子
settings.cy 爬虫配置 ,scrapy.cfg 项目配置
--》创建spider范例
在scrapy startproject xxx之后输入
scrapy genspider example example.com
然后cd进入修改py文件即可
--》启动创建好的爬虫项目
在创建的文件夹中运行scrapy crawl 爬虫名称(在spider中的name定义)
--》出现错误ImportError: No module named cryptography.hazmat.bindings._openssl
su
apt-get install libffi-dev
pip install pyOpenSSL cryptography
--》在爬虫文件返回得到的全部网页
def parse(self, response):
print response.body

猜你喜欢

转载自blog.csdn.net/andeyeluguo/article/details/79970870