贵阳网站建设在哪里,泉州网站制作套餐,专业的镇江网站建设,跑腿网站建设nine Scarpy爬虫框架https://www.cnblogs.com/kermitjam/articles/10147261.html?tdsourcetags_pctim_aiomsg 高并发的爬虫框架 Runspider只能执行某个 爬虫程序.py文件 将项目根目录导入 Xpath语法 获取内容#xff08;‘./text()’) 发送请求 --- 获取响应数据 ---… nine Scarpy爬虫框架https://www.cnblogs.com/kermitjam/articles/10147261.html?tdsourcetags_pctim_aiomsg 高并发的爬虫框架 Runspider只能执行某个 爬虫程序.py文件 将项目根目录导入 Xpath语法 获取内容‘./text()’) 发送请求 --- 获取响应数据 --- 解析数据 --- 保存数据 Scarpy框架介绍 1、引擎(EGINE) 引擎负责控制系统所有组件之间的数据流并在某些动作发生时触发事件。有关详细信息请参见上面的数据流部分。 2、调度器(SCHEDULER) 用来接受引擎发过来的请求, 压入队列中, 并在引擎再次请求的时候返回. 可以想像成一个URL的优先级队列, 由它来决定下一个要抓取的网址是什么, 同时去除重复的网址 3、下载器(DOWLOADER) 用于下载网页内容, 并将网页内容返回给EGINE下载器是建立在twisted这个高效的异步模型上的 4、爬虫(SPIDERS) SPIDERS是开发人员自定义的类用来解析responses并且提取items或者发送新的请求 5、项目管道(ITEM PIPLINES) 在items被提取后负责处理它们主要包括清理、验证、持久化比如存到数据库等操作 下载器中间件(Downloader Middlewares)位于Scrapy引擎和下载器之间主要用来处理从EGINE传到DOWLOADER的请求request已经从DOWNLOADER传到EGINE的响应response 你可用该中间件做以下几件事 (1) process a request just before it is sent to the Downloader (i.e. right before Scrapy sends the request to the website); (2) change received response before passing it to a spider; (3) send a new Request instead of passing received response to a spider; (4) pass response to a spider without fetching a web page; (5) silently drop some requests. 6、爬虫中间件(Spider Middlewares) 位于EGINE和SPIDERS之间主要工作是处理SPIDERS的输入即responses和输出即requests Scarpy安装 1、pip3 install wheel 2、pip3 install lxml 3、pip3 install pyopenssl 4、pip3 install pypiwin32 5、安装twisted框架 下载twisted http://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted 安装下载好的twisted pip3 install 下载目录\Twisted-17.9.0-cp36-cp36m-win_amd64.whl 6、pip3 install scrapy Scarpy使用 1、进入终端cmd - scrapy C:\Users\administortrascrapy Scrapy 1.6.0 - no active project 2、创建scrapy项目 1.创建一个文件夹专门用于存放scrapy项目 - D:\Scrapy_prject 2.cmd终端输入命令 scrapy startproject Spider_Project 项目名 - 会在 D:\Scrapy_prject文件夹下会生成一个文件 Spider_Project : Scrapy项目文件 3.创建爬虫程序 cd Spider_Project # 切换到scrapy项目目录下 # 爬虫程序名称 目标网站域名 scrapy genspider baidu www.baidu.com # 创建爬虫程序 3、启动scrapy项目执行爬虫程序 # 找到爬虫程序文件进行执行 scrapy runspider只能执行某个 爬虫程序.py # 切换到爬虫程序执行文件目录下 - cd D:\Scrapy_prject\Spider_Project\Spider_Project\spiders - scrapy runspider baidu.py # 根据爬虫名称找到相应的爬虫程序执行 scrapy crawl 爬虫程序名称 # 切换到项目目录下 - cd D:\Scrapy_prject\Spider_Project - scrapy crawl baidu 1 1、进入终端cmd2 -scrapy3 4 2、创建scrapy项目5 1.创建文件夹存放scrapy项目6 -D:\Scrapy_project\7 8 2.cmd终端输入命令9 -scrapy starproject Spider_Project
10 会在D:\Scrapy_project\下生成文件夹
11 -Spider_Project Scrapy项目文件
12
13 3.创建好后会提示
14 -cd Spider_Project #切换到scrapy项目目录下
15 #爬虫程序名称 #目标网站域名
16 -scrapy genspider baidu www.baidu.com #创建爬虫程序
17
18 3.启动scrapy项目执行爬虫程序
19 # 找到爬虫程序文件执行
20 scrapy runspider 爬虫程序.py
21 # 切换到爬虫程序执行目录下
22 -cd D:\Scrapy_project\Spider_Project\Spider_Project\spiders
23 -scrapy runspider baidu.py
24
25 # 根据爬虫名称找到相应的爬虫程序执行
26 scrapy crawl 爬虫程序名称
27 # 切换到项目目录下
28 - cd D:\Scrapy_prject\Spider_Project
29 - scrapy crawl baidu
30
31 ** Scarpy在pycharm中的使用 **
32 1、创建一个py文件
33 from scrapy.cmdline import execute
34 execute() # 写scrapy执行命令 scrapy基本使用cmd 1 2 main.py3 4 from scrapy.cmdline import execute5 6 # 写终端命令7 # scrapy crawl baidu8 # 执行baidu爬虫程序9 # execute([scrapy, crawl, baidu])
10
11 # 创建爬取链家网程序
12 # execute([scrapy, genspider, lianjia, lianjia.com])
13
14 # --nolog 去除日志
15 execute(scrapy crawl --nolog lianjia.split( ))
16
17
18 Scrapy在Pycharm中使用
19 1.创建scrapy项目
20 在settings.py文件中有
21 -ROBOTSTXT_OBEY True #默认遵循robot协议
22 修改为
23 -ROBOTSTXT_OBEY False
24
25
26
27
28 lianjia.py
29
30 # -*- coding: utf-8 -*-
31 import scrapy
32 from scrapy import Request
33
34 # response的类
35
36 class LianjiaSpider(scrapy.Spider):
37 name lianjia # 爬虫程序名
38 # 只保留包含lianjia.com的url
39 allowed_domains [lianjia.com] # 限制域名
40
41 # 存放初始请求url
42 start_urls [https://bj.lianjia.com/ershoufang/]
43
44 def parse(self, response): # response返回的响应对象
45 # print(response)
46 # print(type(response))
47 # 获取文本
48 # print(response.text)
49 # print(response.url)
50 # //*[idposition]/dl[2]/dd/div[1]
51
52 # 获取城区列表url
53 area_list response.xpath(//div[data-roleershoufang]/div/a)
54
55 # 遍历所有区域列表
56 for area in area_list:
57 # print(area)
58
59 .extract()提取多个
60 .extract_first()提取一个
61
62 # 1、区域名称
63 area_name area.xpath(./text()).extract_first()
64
65 # 2、区域二级url
66 area_url https://bj.lianjia.com/ area.xpath(./href).extract_first()
67
68 # 会把area_url的请求响应数据交给parse_area方法
69 # yield后面跟着的都会添加到生成器中
70 yield Request(urlarea_url, callbackself.parse_area)
71
72 def parse_area(self, response):
73 # print(response)
74
75 # 获取主页房源ul标签对象
76 house_list response.xpath(//ul[classsellListContent])
77 # print(house_list)
78 if house_list:
79 for house in house_list:
80 # 房源名称
81 # //*[idleftContent]/ul/li[1]/div/div[1]/a
82 house_name house.xpath(.//div[classtitle]/a/text()).extract_first()
83 print(house_name)
84
85 # 房源价格
86 # //*[idleftContent]/ul/li[1]/div/div[4]/div[2]/div[1]/span
87 house_cost house.xpath(.//div[classtotalPrice]/span/text()).extract_first() 万
88 print(house_cost)
89
90 # 房源单价
91 # //*[idleftContent]/ul/li[1]/div/div[4]/div[2]/div[2]/span
92 house_price house.xpath(.//div[classunitPrice]/span/text()).extract_first()
93 print(house_price)
94
95 # yield Request(url下一级url, callbackself.parse_area)
96 pass Scrapy在Pycharm中使用 微信机器人 1 from wxpy import Bot2 from pyecharts import Pie3 import webbrowser4 5 # 实例化一个微信机器人对象6 bot Bot()7 8 # 获取到微信的所有好友9 friends bot.friends()
10
11 # 设定男性\女性\位置性别好友名称
12 attr [男朋友, 女朋友, 人妖]
13
14 # 初始化对应好友数量
15 value [0, 0, 0]
16
17 # 遍历所有的好友,判断这个好友是男性还是女性
18 for friend in friends:
19 if friend.sex 1:
20 value[0] 1
21 elif friend.sex 2:
22 value[1] 1
23 else:
24 value[2] 1
25
26 # 实例化一个饼状图对象
27 pie Pie(Forver的好友们!)
28
29 # 图表名称str属性名称list属性所对应的值listis_label_show是否现在标签
30 pie.add(, attr, value, is_label_showTrue)
31
32 # 生成一个html文件
33 pie.render(friends.html)
34
35 # 打开html文件
36 webbrowser.open(friends.html) View Code posted on 2019-06-25 11:44 LettersfromSuperz 阅读(...) 评论(...) 编辑 收藏 转载于:https://www.cnblogs.com/LettersfromSuperz/p/11081969.html