<form id="3hdj5"></form>

<form id="3hdj5"></form>

        <noframes id="3hdj5"><form id="3hdj5"><nobr id="3hdj5"></nobr></form>

          <form id="3hdj5"></form>

          <noframes id="3hdj5">

          Python爬蟲_Scrapy(一)

          一、Scrapy簡述

          是為了爬取網站數據,提取結構性數據而編寫的應用框架,可應用在包括數據挖掘、信息處理或存儲歷史數據等一系列程序中

          (一)安裝

          pip install scrapy -i https://pypi.douban.com/simple
          

          報錯:

          WARNING: You are using pip version 21.3.1; however, version 22.1.2 is available.
          You should consider upgrading via the 'D:\PythonCode\venv\Scripts\python.exe -m pip install --upgrade pip' command.
          

          解決辦法:運行python -m pip install --upgrade pip
          (二)基本使用

          1. 創建爬蟲項目:scrapy startproject scrapy_baidu_01
            注意:
            (1)必須要進入到安裝有scrapy.exe文件夾中才可運行;
            (2)創建的爬蟲項目名字不允許用數字開頭,也不能包含中文
            (3)務必配置scrapy.exe的環境變量,同時重啟電腦在運行D:\P ythonCode\venv\Scripts
          2. 創建爬蟲文件 在spider文件夾中去創建 D:\PythonCode\venv\Scripts\scrapy_baidu_01\scrapy_baidu_01\spiders>
            創建指令:scrapy genspider 爬蟲文件名字 要爬取的網頁
          3. 運行爬蟲代碼scrapy crawl 爬蟲的名字名字是[name = ‘baidu’]
           import scrapy
          class BaiduSpider(scrapy.Spider):
              # 爬蟲的名字,使用的值
              name = 'baidu'
              # 允許訪問的域名
              allowed_domains = ['www.baidu.com']
              # 起始的url地址 第一次要訪問的域名
              # start_urls實在allowed_domains的前面添加一個http://,在后面添加了/
              start_urls = ['http://www.baidu.com/']
              # 執行了start_urls之后執行的方法,方法中的response是返回的對象,相當于
              # response = urllib.request.urlopen()
              # response = requests.get()
              def parse(self, response):
                  print('ssssss')
          

          二、58同城項目案例

          1. scrapy項目的結構
          scrapy項目的結構
          2. response的屬性和方法
          response.text獲取的是響應的字符串
          response.body獲取二進制數據
          response.xpath可以直接使用xpath方法來解析response中的內容
          response.extract() 用于提取seletor對象中的data屬性值
          response.extract_first() 提取seletor列表的第一個數據

          三、汽車之家案例

          import scrapy
          class CarSpider(scrapy.Spider):
              name = 'car'
              allowed_domains = ['car.autohome.com.cn/price/brand-15.html']
              start_urls = ['https://car.autohome.com.cn/price/brand-15.html']
          
              def parse(self, response):
                  name_list = response.xpath('//div[@class="main-title"]/a/text()')
                  price_list = response.xpath('//div[@class="main-lever"]//span/span/text()')
                  for i in range(len(name_list)):
                      name = name_list[i].extract()
                      price = price_list[i].extract()
                      price(name,price)
          

          scrapy工作原理【灰常重要!!】
          在這里插入圖片描述

          1. 引擎向spiders請求url;
          2. 引擎將請求得到的url傳遞給調度器
          3. 調度器將url生成的請求對象放入指定的隊列中
          4. 從隊列中出隊一個請求
          5. 引擎將請求交給下載器進行處理
          6. 下載器發送請求獲取互聯網數據
          7. 下載器將數據返回給引擎
          8. 引擎將數據再次交給spiders
          9. spiders通過xpath解析該數據,得到數據或者url
          10. spiders將解析結果交給引擎
          11. 若解析結果是數據,則交給管道處理;若解析結果是url,則交給調度器進入下一次循環。

          四、scrapy shell

          在這里插入圖片描述
          直接輸入指令:scrapy shell www.baidu.com
          在這里插入圖片描述在這里插入圖片描述
          在這里插入圖片描述

          評論 1 您還未登錄,請先 登錄 后發表或查看評論

          “相關推薦”對你有幫助么?

          • 非常沒幫助
          • 沒幫助
          • 一般
          • 有幫助
          • 非常有幫助
          提交
          ??2022 CSDN 皮膚主題:游動-白 設計師:我叫白小胖 返回首頁

          打賞作者

          敷衍zgf

          你的鼓勵將是我創作的最大動力

          ¥2 ¥4 ¥6 ¥10 ¥20
          輸入1-500的整數
          余額支付 (余額:-- )
          掃碼支付
          掃碼支付:¥2
          獲取中
          掃碼支付

          您的余額不足,請更換掃碼支付或充值

          打賞作者

          實付
          使用余額支付
          點擊重新獲取
          掃碼支付
          錢包余額 0

          抵扣說明:

          1.余額是錢包充值的虛擬貨幣,按照1:1的比例進行支付金額的抵扣。
          2.余額無法直接購買下載,可以購買VIP、C幣套餐、付費專欄及課程。

          余額充值
          狠狠激情五月丁香免费视频