• 最近一段好忙, 忙的都没时间去管理网站,网站被举报 被攻击 我也是醉了 :sad:

  • 好久没发说说了,感觉与世隔绝了 :lol:

  • 今天更换Git主题,以后本站由Git主题强力驱动 :mrgreen: :mrgreen:
  • 六一儿童节快乐

  • 今天全站启用又拍云 CDN进行加速

  • 这两天有些忙所以没来得及更新,愿一切安好
  • 锲而不舍是取得成功关键的一环
  • 当你无助时,你可以哭,但哭过你必须要振作起来,绝地逢生并不罕见,何况不是绝境! 早安!

  • 今天五一,没有出去玩,主要是人太多了

  • 今天外面风好大,天气也有点冷,出门一定要多穿衣服!

Scrapy 框架

爬虫精进 慕白 7个月前 (05-17) 563次浏览 已收录 0个评论

3 运行

方法一:本地终端运行项目

在本地电脑的终端跳转到 scrapy 项目的文件夹(跳转方法:cd + 文件夹的路径名),
然后输入命令行:scrapy crawl douban(douban 就是我们爬虫的名字)

方法二:创建 main 文件运行

在最外层的大文件夹里新建一个 main.py 文件(与 scrapy.cfg 同级)

代码示例:

from scrapy import cmdline
#导入cmdline模块,可以实现控制终端命令行。
cmdline.execute([‘scrapy’,’crawl’,’douban’])
#用execute()方法,输入运行scrapy的命令。

03 – 存储

1 存储为csv文件

设置:

存储成 csv 文件只需在 settings.py 文件里,添加如下代码

FEED_URI=’./storage/data/%(name)s.csv’
#FEED_URI 是导出文件的路径。’./storage/data/%(name)s.csv’,就是把存储
的文件放到与 settings.py 文件同级的 storage 文件夹的 data 子文件夹里
FEED_FORMAT=’CSV’
#FEED_FORMAT 是导出数据格式,写 CSV 就能得到 CSV 格式
FEED_EXPORT_ENCODING=’ansi’
#FEED_EXPORT_ENCODING 是导出文件编码,ansi 是一种在 windows 上的
编码格式(也可以把它变成 utf-8 用在mac电脑上)

2 存储为excel文件

设置:

先在 setting.py 里设置启用 ITEM_PIPELINES,取消 ITEM_PIPELINES 的注释(删掉#)
再编辑 pipelines.py 文件(编辑 pipelines.py 文件用 openpyxl 模块来实现)

“ITEM_PIPELINES = {
‘jobui.pipelines.JobuiPipeline’: 300,
}”

关键代码示例(以职友集网站为例)

import openpyxl
class JobuiPipeline(object):
#定义一个JobuiPipeline类,负责处理item
def __init__(self):
#初始化函数 当类实例化时这个方法会自启动
self.wb =openpyxl.Workbook()
#创建工作薄
self.ws = self.wb.active
#定位活动表
self.ws.append([‘公司’,’职位’,’地址’,’招聘信息’])
#用append函数往表格添加表头
def process_item(self, item, spider):
#process_item是默认处理item的方法,就像parse是默认处理response的方法
line = [item[‘company’], item[‘position’],
item[‘address’], item[‘detail’]]
#把公司名称、职位名称、工作地点和招聘要求都写成列表形式,赋值给line
self.ws.append(line)
#用append函数把公司名称、职位名称、工作地点和招聘要求的数据都添进表格
return item
#将item丢回给引擎,如果后面还有item需要经过的itempipeline,引擎会自己调度
def close_spider(self, spider):
#close_spider是当爬虫结束运行时,这个方法就会执行
self.wb.save(‘./jobui.xlsx’)
#保存文件
self.wb.close()
#关闭文件

3 修改设置:setting.py 文件

修改默认设置:
添加请求头,以及把 ROBOTSTXT_OBEY=True 改成 ROBOTSTXT_OBEY=False

取消 DOWNLOAD_DELAY = 0 这行的注释(删掉#)

DOWNLOAD_DELAY可以控制爬虫的速度。因为爬虫项目的爬取速度不宜过快,我们需要
把下载延迟的时间改成 0.5 秒。

代码示例:

# Crawl responsibly by identifying yourself (and your website) on the user-agent
USER_AGENT = ‘以自己浏览器的headers为准’
# Obey robots.txt rules
ROBOTSTXT_OBEY = False
DOWNLOAD_DELAY = 0.5″


清宁时光 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Scrapy 框架
喜欢 (0)
[6447834@qq.com]
分享 (0)
慕白
关于作者:
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址