真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何實(shí)現(xiàn)URL字段的解析

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)如何實(shí)現(xiàn)URL字段的解析,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

創(chuàng)新互聯(lián)建站專注于南丹網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供南丹營(yíng)銷型網(wǎng)站建設(shè),南丹網(wǎng)站制作、南丹網(wǎng)頁(yè)設(shè)計(jì)、南丹網(wǎng)站官網(wǎng)定制、成都微信小程序服務(wù),打造南丹網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供南丹網(wǎng)站排名全網(wǎng)營(yíng)銷落地服務(wù)。

1.修改爬取的目標(biāo)地址

我們知道如果想要爬取網(wǎng)站的數(shù)據(jù)需要在spiders文件中創(chuàng)建一個(gè)蜘蛛,創(chuàng)建后這個(gè)蜘蛛中會(huì)自動(dòng)生成一個(gè)類,類名也是由蜘蛛名加Spider組成,如上一節(jié)中爬去csdn網(wǎng)站生成的:CsDNSpider類,這個(gè)類中的name也就是蜘蛛的名稱,allowed_domains是允許爬取網(wǎng)站的域名,start_urls是需要爬取的目標(biāo)網(wǎng)站的網(wǎng)址,如果需要更改爬取的目標(biāo)頁(yè)面,只需要修改start_urls就可以了;

import scrapy
class CsdnSpider(scrapy.Spider):
    name = 'csdn'
    allowed_domains = ['www.csdn.net']
    start_urls = ['http://www.csdn.net/']
    def parse(self, response):
        pass

2.解析標(biāo)題的超鏈接a標(biāo)簽的跳轉(zhuǎn)地址和標(biāo)題內(nèi)容

  • 那我們繼續(xù)用csdn的今天推薦作為爬取信息,首先需要在CsdnSpider類中的parse(self,response)方法中使用response對(duì)象來(lái)對(duì)css選擇器獲取到的a元素的href值進(jìn)行解析,如response.css('h3 a::attr(href)').extract(),這樣就可以得到一個(gè)url地址的列表;

import scrapy
class CsdnSpider(scrapy.Spider):
    name = 'csdn'
    allowed_domains = ['www.csdn.net']
    start_urls = ['http://www.csdn.net/']
    def parse(self, response):
       urls = response.css('.company_list .company_name a::attr(href)').extract()
       print(urls)
  • 接著我們循環(huán)得到的列表,拿到每一個(gè)a標(biāo)簽的url地址,然后使用Request請(qǐng)求,需要傳遞兩個(gè)參數(shù),一個(gè)是url用于告訴我們接下來(lái)解析哪個(gè)頁(yè)面,可以通過parse.urljoin()方法拼接頁(yè)面鏈接,另一個(gè)是callback回調(diào)函數(shù)。

這個(gè)回調(diào)函數(shù)是我們自己定義的,也會(huì)傳遞一個(gè)response對(duì)象,通過這個(gè)response對(duì)象對(duì)css選擇器獲取的元素進(jìn)行解析,這樣我們就可以拿到每個(gè)解析頁(yè)面的標(biāo)題內(nèi)容了;

import scrapy
from scrapy.http import Request
from urllib import parse
class CsdnSpider(scrapy.Spider):
    name = 'csdn'
    allowed_domains = ['www.csdn.net']
    start_urls = ['http://www.csdn.net/']
    def parse(self, response):
       # 獲取url
       urls = response.css('.company_list .company_name a::attr(href)').extract()
       # print(urls)
       # 解析頁(yè)面
       for url in urls:
           yield Request(url = parse.urljoin(response.url, url), callback=self.parse_analyse, dont_filter=True)
    # 回調(diào)函數(shù)
    def parse_analyse(self, response):
        title = response.css('.company_list .company_name a::text').extract_first()
        print(title)

3.Request對(duì)象的介紹

  • class scrapy.http.Request(url[, callback, method='GET', headers, body, cookies, meta, encoding='utf-8',priority=0, dont_filter=False, errback]),一個(gè)request對(duì)象代表一個(gè)HTTP請(qǐng)求,通常由Spider產(chǎn)生,經(jīng)Downloader執(zhí)行從而產(chǎn)生一個(gè)Response;

  • url:用于請(qǐng)求的URL;

  • callback:指定一個(gè)回調(diào)函數(shù),該回調(diào)函數(shù)以這個(gè)request是的response作為第一個(gè)參數(shù),如果未指定callback則默認(rèn)使用spider的parse()方法;

  • method: HTTP請(qǐng)求的方法,默認(rèn)為GET;

  • headers:請(qǐng)求的頭部;

  • body:請(qǐng)求的正文,可以是bytes或者str;

  • cookies:請(qǐng)求攜帶的cookie;

  • meta:指定Request.meta屬性的初始值,如果給了該參數(shù),dict將會(huì)淺拷貝;

  • encoding:請(qǐng)求的編碼, 默認(rèn)為utf-8;

  • priority:優(yōu)先級(jí),優(yōu)先級(jí)越高,越先下載;

  • dont_filter:指定該請(qǐng)求是否被 Scheduler過濾,該參數(shù)可以使request重復(fù)使用;

  • errback:處理異常的回調(diào)函數(shù);

上述就是小編為大家分享的如何實(shí)現(xiàn)URL字段的解析了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


標(biāo)題名稱:如何實(shí)現(xiàn)URL字段的解析
本文URL:http://weahome.cn/article/pgpcpi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部