国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專(zhuān)欄INFORMATION COLUMN

13、web爬蟲(chóng)講解2—Scrapy框架爬蟲(chóng)—Scrapy爬取百度新聞,爬取Ajax動(dòng)態(tài)生成的信息

Blackjun / 2431人閱讀

摘要:百度云搜索,搜各種資料搜網(wǎng)盤(pán),搜各種資料爬取百度新聞,爬取動(dòng)態(tài)生成的信息,抓取百度新聞首頁(yè)的新聞地址有多網(wǎng)站,當(dāng)你瀏覽器訪(fǎng)問(wèn)時(shí)看到的信息,在源文件里卻找不到,由得信息還是滾動(dòng)條滾動(dòng)到對(duì)應(yīng)的位置后才顯示信息,那么這種一般都是的動(dòng)態(tài)請(qǐng)求生成的信

【百度云搜索,搜各種資料:http://www.bdyss.cn】
【搜網(wǎng)盤(pán),搜各種資料:http://www.swpan.cn】

crapy爬取百度新聞,爬取Ajax動(dòng)態(tài)生成的信息,抓取百度新聞首頁(yè)的新聞rul地址

有多網(wǎng)站,當(dāng)你瀏覽器訪(fǎng)問(wèn)時(shí)看到的信息,在html源文件里卻找不到,由得信息還是滾動(dòng)條滾動(dòng)到對(duì)應(yīng)的位置后才顯示信息,那么這種一般都是 js 的?Ajax 動(dòng)態(tài)請(qǐng)求生成的信息

我們以百度新聞為列:

1、分析網(wǎng)站

首先我們?yōu)g覽器打開(kāi)百度新聞,在網(wǎng)頁(yè)中間部分找一條新聞信息

然后查看源碼,看看在源碼里是否有這條新聞,可以看到源文件里沒(méi)有這條信息,這種情況爬蟲(chóng)是無(wú)法爬取到信息的

那么我們就需要抓包分析了,啟動(dòng)抓包軟件和抓包瀏覽器,前后有說(shuō)過(guò)軟件了,就不在說(shuō)了,此時(shí)我們經(jīng)過(guò)抓包看到這條信息是通過(guò)Ajax動(dòng)態(tài)生成的JSON數(shù)據(jù),也就是說(shuō),當(dāng)html頁(yè)面加載完成后才生成的,所有我們?cè)谠次募餆o(wú)法找到,當(dāng)然爬蟲(chóng)也找不到

我們首先將這個(gè)JSON數(shù)據(jù)網(wǎng)址拿出來(lái),到瀏覽器看看,我們需要的數(shù)據(jù)是不是全部在里面,此時(shí)我們看到這次請(qǐng)求里只有 17條信息,顯然我們需要的信息不是完全在里面,還得繼續(xù)看看其他js包

我們將抓包瀏覽器滾動(dòng)條拉到底,以便觸發(fā)所有js請(qǐng)求,然后在繼續(xù)找js包,我們將所有js包都找完了再也沒(méi)看到新聞信息的包了

那信息就不在js包里了,我們回頭在看看其他類(lèi)型的請(qǐng)求,此時(shí)我們看到很多get請(qǐng)求響應(yīng)的是我們需要的新聞信息,說(shuō)明只有第一次那個(gè)Ajax請(qǐng)求返回的JSON數(shù)據(jù),后面的Ajax請(qǐng)求返回的都是html類(lèi)型的字符串?dāng)?shù)據(jù),

我們將Ajax請(qǐng)求返回的JSON數(shù)據(jù)的網(wǎng)址和Ajax請(qǐng)求返回html類(lèi)型的字符串?dāng)?shù)據(jù)網(wǎng)址,拿來(lái)做一下比較看看是否能找到一定規(guī)律,

此時(shí)我們可以看到,JSON數(shù)據(jù)的網(wǎng)址和html類(lèi)型的字符串?dāng)?shù)據(jù)網(wǎng)址是一個(gè)請(qǐng)求地址,

只是請(qǐng)求時(shí)傳遞的參數(shù)不一樣而已,那么說(shuō)明無(wú)論返回的什么類(lèi)型的數(shù)據(jù),都是在一個(gè)請(qǐng)求地址處理的,只是根據(jù)不同的傳參返回不同類(lèi)型的數(shù)據(jù)而已

http://news.baidu.com/widget?id=LocalNews&ajax=json&t=1501348444467???JSON數(shù)據(jù)的網(wǎng)址

http://news.baidu.com/widget?id=civilnews&t=1501348728134????????html類(lèi)型的字符串?dāng)?shù)據(jù)網(wǎng)址

http://news.baidu.com/widget?id=InternationalNews&t=1501348728196????html類(lèi)型的字符串?dāng)?shù)據(jù)網(wǎng)址

我們可以將html類(lèi)型的字符串?dāng)?shù)據(jù)網(wǎng)址加上JSON數(shù)據(jù)的網(wǎng)址參數(shù),那是否會(huì)返回JSON數(shù)據(jù)類(lèi)型?試一試,果然成功了

http://news.baidu.com/widget?id=civilnews&ajax=json????????將html類(lèi)型的字符串?dāng)?shù)據(jù)網(wǎng)址加上JSON數(shù)據(jù)的網(wǎng)址參數(shù)

http://news.baidu.com/widget?id=InternationalNews&ajax=json????將html類(lèi)型的字符串?dāng)?shù)據(jù)網(wǎng)址加上JSON數(shù)據(jù)的網(wǎng)址參數(shù)

這下就好辦了,找到所有的html類(lèi)型的字符串?dāng)?shù)據(jù)網(wǎng)址,按照上面的方法將其轉(zhuǎn)換成JSON數(shù)據(jù)的網(wǎng)址,然后循環(huán)的去訪(fǎng)問(wèn)轉(zhuǎn)換后的JSON數(shù)據(jù)的網(wǎng)址,就可以拿到所有新聞的url地址了

crapy實(shí)現(xiàn)

#?-*-?coding:?utf-8?-*-
import?scrapy
from?scrapy.http?import?Request,FormRequest
import?re
import?json
from?adc.items?import?AdcItem
from?scrapy.selector?import?Selector

class?PachSpider(scrapy.Spider):????????????????????????????#定義爬蟲(chóng)類(lèi),必須繼承scrapy.Spider
????name?=?"pach"???????????????????????????????????????????#設(shè)置爬蟲(chóng)名稱(chēng)
????allowed_domains?=?["news.baidu.com"]????????????????????#爬取域名
????start_urls?=?["http://news.baidu.com/widget?id=civilnews&ajax=json"]

????qishiurl?=?[????????????????????#的到所有頁(yè)面id
????????"InternationalNews",
????????"FinanceNews",
????????"EnterNews",
????????"SportNews",
????????"AutoNews",
????????"HouseNews",
????????"InternetNews",
????????"InternetPlusNews",
????????"TechNews",
????????"EduNews",
????????"GameNews",
????????"DiscoveryNews",
????????"HealthNews",
????????"LadyNews",
????????"SocialNews",
????????"MilitaryNews",
????????"PicWall"
????]

????urllieb?=?[]
????for?i?in?range(0,len(qishiurl)):????????????#構(gòu)造出所有idURL
????????kaishi_url?=?"http://news.baidu.com/widget?id="?+?qishiurl[i]?+?"&ajax=json"
????????urllieb.append(kaishi_url)
????#?print(urllieb)

????def?parse(self,?response):??????????????????#選項(xiàng)所有連接
????????for?j?in?range(0,?len(self.urllieb)):
????????????a?=?"正在處理第%s個(gè)欄目:url地址是:%s"?%?(j,?self.urllieb[j])
????????????yield?scrapy.Request(url=self.urllieb[j],?callback=self.enxt)?????#每次循環(huán)到的url?添加爬蟲(chóng)

????def?enxt(self,?response):
????????neir?=?response.body.decode("utf-8")
????????pat2?=?""m_url":"(.*?)""
????????url?=?re.compile(pat2,?re.S).findall(neir)??????#通過(guò)正則獲取爬取頁(yè)面?的URL
????????for?k?in?range(0,len(url)):
????????????zf_url?=?url[k]
????????????url_zf?=?re.sub("/",?"/",?zf_url)
????????????pduan?=?url_zf.find("http://")
????????????if?pduan?==?0:
????????????????print(url_zf)???????????????????????#輸出獲取到的所有url

【轉(zhuǎn)載自:http://www.lqkweb.com】

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/45075.html

相關(guān)文章

  • 首次公開(kāi),整理12年積累博客收藏夾,零距離展示《收藏夾吃灰》系列博客

    摘要:時(shí)間永遠(yuǎn)都過(guò)得那么快,一晃從年注冊(cè),到現(xiàn)在已經(jīng)過(guò)去了年那些被我藏在收藏夾吃灰的文章,已經(jīng)太多了,是時(shí)候把他們整理一下了。那是因?yàn)槭詹貖A太亂,橡皮擦給設(shè)置私密了,不收拾不好看呀。 ...

    Harriet666 評(píng)論0 收藏0
  • scrapy-redis分布式爬蟲(chóng)框架詳解

    摘要:分布式爬蟲(chóng)框架詳解隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展與應(yīng)用的普及,網(wǎng)絡(luò)作為信息的載體,已經(jīng)成為社會(huì)大眾參與社會(huì)生活的一種重要信息渠道。下載器中間件位于引擎和下載器之間的框架,主要是處理引擎與下載器之間的請(qǐng)求及響應(yīng)。 scrapy-redis分布式爬蟲(chóng)框架詳解 隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展與應(yīng)用的普及,網(wǎng)絡(luò)作為信息的載體,已經(jīng)成為社會(huì)大眾參與社會(huì)生活的一種重要信息渠道。由于互聯(lián)網(wǎng)是開(kāi)放的,每個(gè)人都可以在網(wǎng)絡(luò)上...

    myeveryheart 評(píng)論0 收藏0
  • 11、web爬蟲(chóng)講解2Scrapy框架爬蟲(chóng)Scrapy使用

    摘要:百度云搜索,搜各種資料搜網(wǎng)盤(pán),搜各種資料表達(dá)式表示向下查找層指定標(biāo)簽,如表示查找所有標(biāo)簽表示向下查找一層指定的標(biāo)簽表示查找指定屬性的值可以連綴如屬性名稱(chēng)屬性值表示查找指定屬性等于指定值的標(biāo)簽可以連綴,如查找名稱(chēng)等于指定名稱(chēng)的標(biāo)簽獲取標(biāo)簽文本 【百度云搜索,搜各種資料:http://www.lqkweb.com】 【搜網(wǎng)盤(pán),搜各種資料:http://www.swpan.cn】 xpath...

    trilever 評(píng)論0 收藏0
  • 10、web爬蟲(chóng)講解2Scrapy框架爬蟲(chóng)Scrapy安裝—Scrapy指令

    摘要:負(fù)責(zé)處理被提取出來(lái)的。典型的處理有清理驗(yàn)證及持久化例如存取到數(shù)據(jù)庫(kù)知識(shí)庫(kù)項(xiàng)目的設(shè)置文件實(shí)現(xiàn)自定義爬蟲(chóng)的目錄中間件是在引擎及之間的特定鉤子,處理的輸入和輸出及。 【百度云搜索:http://www.bdyss.com】 【搜網(wǎng)盤(pán):http://www.swpan.cn】 Scrapy框架安裝 1、首先,終端執(zhí)行命令升級(jí)pip: python -m pip install --upgrad...

    OnlyMyRailgun 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<