日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

nine

發(fā)布時間:2023/12/2 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 nine 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
nine
  • Scarpy爬蟲框架

https://www.cnblogs.com/kermitjam/articles/10147261.html?tdsourcetag=s_pctim_aiomsg

高并發(fā)的爬蟲框架

Runspider只能執(zhí)行某個 爬蟲程序.py文件

將項目根目錄導入

Xpath語法 獲取內容(./text()’)

?

發(fā)送請求 ---> 獲取響應數據 ---> 解析數據 ---> 保存數據


Scarpy框架介紹

1、引擎(EGINE)
引擎負責控制系統(tǒng)所有組件之間的數據流,并在某些動作發(fā)生時觸發(fā)事件。有關詳細信息,請參見上面的數據流部分。

2、調度器(SCHEDULER)
用來接受引擎發(fā)過來的請求, 壓入隊列中, 并在引擎再次請求的時候返回. 可以想像成一個URL的優(yōu)先級隊列, 由它來決定下一個要抓取的網址是什么, 同時去除重復的網址

3、下載器(DOWLOADER)
用于下載網頁內容, 并將網頁內容返回給EGINE,下載器是建立在twisted這個高效的異步模型上的

4、爬蟲(SPIDERS)
SPIDERS是開發(fā)人員自定義的類,用來解析responses,并且提取items,或者發(fā)送新的請求

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\administortra>scrapy
Scrapy 1.6.0 - no active project

2、創(chuàng)建scrapy項目
1.創(chuàng)建一個文件夾,專門用于存放scrapy項目
- D:\Scrapy_prject
2.cmd終端輸入命令
scrapy startproject Spider_Project( 項目名)
- 會在 D:\Scrapy_prject文件夾下會生成一個文件
Spider_Project : Scrapy項目文件

3.創(chuàng)建爬蟲程序
cd Spider_Project # 切換到scrapy項目目錄下
# 爬蟲程序名稱 目標網站域名
scrapy genspider baidu www.baidu.com # 創(chuàng)建爬蟲程序

3、啟動scrapy項目,執(zhí)行爬蟲程序

# 找到爬蟲程序文件進行執(zhí)行
scrapy runspider只能執(zhí)行某個 爬蟲程序.py
# 切換到爬蟲程序執(zhí)行文件目錄下
- cd D:\Scrapy_prject\Spider_Project\Spider_Project\spiders
- scrapy runspider baidu.py

# 根據爬蟲名稱找到相應的爬蟲程序執(zhí)行
scrapy crawl 爬蟲程序名稱
# 切換到項目目錄下
- cd D:\Scrapy_prject\Spider_Project
- scrapy crawl baidu

1 1、進入終端cmd: 2 -scrapy 3 4 2、創(chuàng)建scrapy項目 5 1.創(chuàng)建文件夾存放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.創(chuàng)建好后會提示 14 -cd Spider_Project #切換到scrapy項目目錄下 15 #爬蟲程序名稱 #目標網站域名 16 -scrapy genspider baidu www.baidu.com #創(chuàng)建爬蟲程序 17 18 3.啟動scrapy項目,執(zhí)行爬蟲程序 19 # 找到爬蟲程序文件執(zhí)行 20 scrapy runspider 爬蟲程序.py 21 # 切換到爬蟲程序執(zhí)行目錄下 22 -cd D:\Scrapy_project\Spider_Project\Spider_Project\spiders 23 -scrapy runspider baidu.py 24 25 # 根據爬蟲名稱找到相應的爬蟲程序執(zhí)行 26 scrapy crawl 爬蟲程序名稱 27 # 切換到項目目錄下 28 - cd D:\Scrapy_prject\Spider_Project 29 - scrapy crawl baidu 30 31 ** Scarpy在pycharm中的使用 ** 32 1、創(chuàng)建一個py文件 33 from scrapy.cmdline import execute 34 execute() # 寫scrapy執(zhí)行命令 scrapy基本使用cmd 1 ''' 2 main.py 3 ''' 4 from scrapy.cmdline import execute 5 6 # 寫終端命令 7 # scrapy crawl baidu 8 # 執(zhí)行baidu爬蟲程序 9 # execute(['scrapy', 'crawl', 'baidu']) 10 11 # 創(chuàng)建爬取鏈家網程序 12 # execute(['scrapy', 'genspider', 'lianjia', 'lianjia.com']) 13 14 # --nolog 去除日志 15 execute('scrapy crawl --nolog lianjia'.split(' ')) 16 17 ''' 18 Scrapy在Pycharm中使用 19 1.創(chuàng)建scrapy項目 20 在settings.py文件中有 21 -ROBOTSTXT_OBEY = True #默認遵循robot協(xié)議 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 # //*[@id="position"]/dl[2]/dd/div[1] 51 52 # 獲取城區(qū)列表url 53 area_list = response.xpath('//div[@data-role="ershoufang"]/div/a') 54 55 # 遍歷所有區(qū)域列表 56 for area in area_list: 57 # print(area) 58 ''' 59 .extract()提取多個 60 .extract_first()提取一個 61 ''' 62 # 1、區(qū)域名稱 63 area_name = area.xpath('./text()').extract_first() 64 65 # 2、區(qū)域二級url 66 area_url = 'https://bj.lianjia.com/' + area.xpath('./@href').extract_first() 67 68 # 會把area_url的請求響應數據交給parse_area方法 69 # yield后面跟著的都會添加到生成器中 70 yield Request(url=area_url, callback=self.parse_area) 71 72 def parse_area(self, response): 73 # print(response) 74 75 # 獲取主頁房源ul標簽對象 76 house_list = response.xpath('//ul[@class="sellListContent"]') 77 # print(house_list) 78 if house_list: 79 for house in house_list: 80 # 房源名稱 81 # //*[@id="leftContent"]/ul/li[1]/div/div[1]/a 82 house_name = house.xpath('.//div[@class="title"]/a/text()').extract_first() 83 print(house_name) 84 85 # 房源價格 86 # //*[@id="leftContent"]/ul/li[1]/div/div[4]/div[2]/div[1]/span 87 house_cost = house.xpath('.//div[@class="totalPrice"]/span/text()').extract_first() + '' 88 print(house_cost) 89 90 # 房源單價 91 # //*[@id="leftContent"]/ul/li[1]/div/div[4]/div[2]/div[2]/span 92 house_price = house.xpath('.//div[@class="unitPrice"]/span/text()').extract_first() 93 print(house_price) 94 95 # yield Request(url='下一級url', callback=self.parse_area) 96 pass Scrapy在Pycharm中使用

  • 微信機器人
1 from wxpy import Bot 2 from pyecharts import Pie 3 import webbrowser 4 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,屬性所對應的值list,is_label_show是否現(xiàn)在標簽 30 pie.add('', attr, value, is_label_show=True) 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

總結

以上是生活随笔為你收集整理的nine的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。