陕西
029-87400537
首页 > 常见问题 > 【西安IT培训】零基础该怎样速成Python 爬虫?

【西安IT培训】零基础该怎样速成Python 爬虫?

2018-02-12 13:40:44 来源:互联网 荐:IT资料豪华升级版,点击加群领取

【西安IT培训】零基础该怎样速成Python 爬虫?零基础入门学习Python都需要学习哪些知识?

日前Python很热门,许多IT从业者开始自学Python,陕西优就业小编整理了Python小白速成爬虫指南,如有疑问亦可来咨讯小U

一、入门

1、准备工作: Python、scrapy、一个IDE或者随便什么文本编辑工具。

2、建一个工作目录,然后用命令行建立一个工程,设置工程名,然后得到的一个由scrapy创建的目录结构,在spiders文件夹中创建一个python文件,比如miao.py,来作为爬虫的脚本。

内容如下:

import scrapy

class NgaSpider(scrapy.Spider):

name = "NgaSpider"

host = "http://bbs.ngacn.cc/"

# start_urls是我们准备爬的初始页

start_urls = [

"http://bbs.ngacn.cc/thread.php?fid=406",

]

# 这个是解析函数,如果不特别指明的话,scrapy抓回来的页面会由这个函数进行解析。

# 对页面的处理和分析工作都在此进行,这个示例里我们只是简单地把页面内容打印出来。

def parse(self, response):

print response.body

3、为什么不试下xpath?

href就是这个帖子的地址,而这个标签包裹的内容就是帖子的标题了,用xpath的绝对定位方法,把class='topic'的部分摘出来。

4、递归:需要用到python的yield。

yield Request(url=url, callback=self.parse_topic),此处用scrapy去抓取这个url,然后把抓回来的页面用指定的parse_topic函数进行解析。

【西安IT培训】零基础该怎样速成Python 爬虫?

二、定义两个简单的class来描述我们爬取的结果。

1、写一个处理方法

在miao文件夹下面找到那个pipelines.py文件,scrapy之前应该已经自动生成好了。

class FilePipeline(object):

##爬虫的分析结果都会由scrapy交给此函数处理

def process_item(self, item, spider):

if isinstance(item, TopicItem):

## 在此可进行文件写入、数据库写入等操作

pass

if isinstance(item, ContentItem):

## 在此可进行文件写入、数据库写入等操作

pass

## ...

return item

2、在爬虫中调用这个处理方法,要调用这个方法只需在爬虫中调用即可

3、在配置文件里指定这个pipeline,找到settings.py文件,在里面加入

ITEM_PIPELINES = {

'miao.pipelines.FilePipeline': 400,

}

这样在爬虫里调用yield item的时候都会由经这个FilePipeline来处理。后面的数字400表示的是优先级。

可以在此配置多个Pipeline,scrapy会根据优先级,把item依次交给各个item来处理,每个处理完的结果会传递给下一个pipeline来处理。

4、破网站封IP,我要用代理

Script填你的scrapy的cmdline.py路径,比如我的是

/usr/local/lib/python2.7/dist-packages/scrapy/cmdline.py

然后在Scrpit parameters中填爬虫的名字,Working diretory,找到你的settings.py文件,填这个文件所在的目录。


推荐阅读:

【西安IT培训】学完Python都可以从事哪些方面的工作?

【西安IT培训】Python是一种什么语言?python语言有什么优势?

更多分享交流,礼品领取,海量干货,请扫描下方内部资料领取二维码,一不小心就爱上IT,成为了大佬!

免责声明:本文来源于网络,由网友提供或网络搜集,仅供个人交流学习参考使用,不涉及商业盈利目的。如有版权问题,请联系本站管理员予以更改或删除。谢谢合作!

热门标签: python爬虫

推荐阅读

 
 
咨询中心
优就业微信扫一扫
微信扫一扫

400-650-7353

加入官方微博