0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

python爬蟲(chóng)框架Scrapy實(shí)戰(zhàn)案例!

馬哥Linux運(yùn)維 ? 來(lái)源:lq ? 2018-12-07 16:12 ? 次閱讀

我們使用dmoz.org這個(gè)網(wǎng)站來(lái)作為小抓抓一展身手的對(duì)象。

首先先要回答一個(gè)問(wèn)題。

問(wèn):把網(wǎng)站裝進(jìn)爬蟲(chóng)里,總共分幾步?

答案很簡(jiǎn)單,四步:

新建項(xiàng)目 (Project):新建一個(gè)新的爬蟲(chóng)項(xiàng)目

明確目標(biāo)(Items):明確你想要抓取的目標(biāo)

制作爬蟲(chóng)(Spider):制作爬蟲(chóng)開(kāi)始爬取網(wǎng)頁(yè)

存儲(chǔ)內(nèi)容(Pipeline):設(shè)計(jì)管道存儲(chǔ)爬取內(nèi)容

好的,基本流程既然確定了,那接下來(lái)就一步一步的完成就可以了。

1.新建項(xiàng)目(Project)

在空目錄下按住Shift鍵右擊,選擇“在此處打開(kāi)命令窗口”,輸入一下命令:

其中,tutorial為項(xiàng)目名稱。

可以看到將會(huì)創(chuàng)建一個(gè)tutorial文件夾,目錄結(jié)構(gòu)如下:

下面來(lái)簡(jiǎn)單介紹一下各個(gè)文件的作用:

scrapy.cfg:項(xiàng)目的配置文件

tutorial/:項(xiàng)目的Python模塊,將會(huì)從這里引用代碼

tutorial/items.py:項(xiàng)目的items文件

tutorial/pipelines.py:項(xiàng)目的pipelines文件

tutorial/settings.py:項(xiàng)目的設(shè)置文件

tutorial/spiders/:存儲(chǔ)爬蟲(chóng)的目錄

2.明確目標(biāo)(Item)

在Scrapy中,items是用來(lái)加載抓取內(nèi)容的容器,有點(diǎn)像Python中的Dic,也就是字典,但是提供了一些額外的保護(hù)減少錯(cuò)誤。

一般來(lái)說(shuō),item可以用scrapy.item.Item類來(lái)創(chuàng)建,并且用scrapy.item.Field對(duì)象來(lái)定義屬性(可以理解成類似于ORM的映射關(guān)系)。

接下來(lái),我們開(kāi)始來(lái)構(gòu)建item模型(model)。

首先,我們想要的內(nèi)容有:

名稱(name)

鏈接(url)

描述(description)

修改tutorial目錄下的items.py文件,在原本的class后面添加我們自己的class。

因?yàn)橐moz.org網(wǎng)站的內(nèi)容,所以我們可以將其命名為DmozItem:

剛開(kāi)始看起來(lái)可能會(huì)有些看不懂,但是定義這些item能讓你用其他組件的時(shí)候知道你的 items到底是什么。

可以把Item簡(jiǎn)單的理解成封裝好的類對(duì)象。

3.制作爬蟲(chóng)(Spider)

制作爬蟲(chóng),總體分兩步:先爬再取。

也就是說(shuō),首先你要獲取整個(gè)網(wǎng)頁(yè)的所有內(nèi)容,然后再取出其中對(duì)你有用的部分。

3.1爬

Spider是用戶自己編寫的類,用來(lái)從一個(gè)域(或域組)中抓取信息。

他們定義了用于下載的URL列表、跟蹤鏈接的方案、解析網(wǎng)頁(yè)內(nèi)容的方式,以此來(lái)提取items。

要建立一個(gè)Spider,你必須用scrapy.spider.BaseSpider創(chuàng)建一個(gè)子類,并確定三個(gè)強(qiáng)制的屬性:

name:爬蟲(chóng)的識(shí)別名稱,必須是唯一的,在不同的爬蟲(chóng)中你必須定義不同的名字。

start_urls:爬取的URL列表。爬蟲(chóng)從這里開(kāi)始抓取數(shù)據(jù),所以,第一次下載的數(shù)據(jù)將會(huì)從這些urls開(kāi)始。其他子URL將會(huì)從這些起始URL中繼承性生成。

parse():解析的方法,調(diào)用的時(shí)候傳入從每一個(gè)URL傳回的Response對(duì)象作為唯一參數(shù),負(fù)責(zé)解析并匹配抓取的數(shù)據(jù)(解析為item),跟蹤更多的URL。

這里可以參考寬度爬蟲(chóng)教程中提及的思想來(lái)幫助理解,教程傳送:[Java] 知乎下巴第5集:使用HttpClient工具包和寬度爬蟲(chóng)。

也就是把Url存儲(chǔ)下來(lái)并依此為起點(diǎn)逐步擴(kuò)散開(kāi)去,抓取所有符合條件的網(wǎng)頁(yè)Url存儲(chǔ)起來(lái)繼續(xù)爬取。

下面我們來(lái)寫第一只爬蟲(chóng),命名為dmoz_spider.py,保存在tutorial\spiders目錄下。

dmoz_spider.py代碼如下:

allow_domains是搜索的域名范圍,也就是爬蟲(chóng)的約束區(qū)域,規(guī)定爬蟲(chóng)只爬取這個(gè)域名下的網(wǎng)頁(yè)。

從parse函數(shù)可以看出,將鏈接的最后兩個(gè)地址取出作為文件名進(jìn)行存儲(chǔ)。

然后運(yùn)行一下看看,在tutorial目錄下按住shift右擊,在此處打開(kāi)命令窗口,輸入:

運(yùn)行結(jié)果如圖:

報(bào)錯(cuò)了:

UnicodeDecodeError: 'ascii' codec can't decode byte 0xb0 in position 1: ordinalnot in range(128)

運(yùn)行第一個(gè)Scrapy項(xiàng)目就報(bào)錯(cuò),真是命運(yùn)多舛。

應(yīng)該是出了編碼問(wèn)題,谷歌了一下找到了解決方案:

在python的Lib\site-packages文件夾下新建一個(gè)sitecustomize.py:

再次運(yùn)行,OK,問(wèn)題解決了,看一下結(jié)果:

最后一句INFO: Closing spider (finished)表明爬蟲(chóng)已經(jīng)成功運(yùn)行并且自行關(guān)閉了。

包含 [dmoz]的行 ,那對(duì)應(yīng)著我們的爬蟲(chóng)運(yùn)行的結(jié)果。

可以看到start_urls中定義的每個(gè)URL都有日志行。

還記得我們的start_urls嗎?

http://www.dmoz.org/Computers/Programming/Languages/Python/Bookshttp://www.dmoz.org/Computers/Programming/Languages/Python/Resources

因?yàn)檫@些URL是起始頁(yè)面,所以他們沒(méi)有引用(referrers),所以在它們的每行末尾你會(huì)看到 (referer: )。

在parse 方法的作用下,兩個(gè)文件被創(chuàng)建:分別是 Books 和 Resources,這兩個(gè)文件中有URL的頁(yè)面內(nèi)容。

那么在剛剛的電閃雷鳴之中到底發(fā)生了什么呢?

首先,Scrapy為爬蟲(chóng)的 start_urls屬性中的每個(gè)URL創(chuàng)建了一個(gè) scrapy.http.Request 對(duì)象 ,并將爬蟲(chóng)的parse 方法指定為回調(diào)函數(shù)。

然后,這些 Request被調(diào)度并執(zhí)行,之后通過(guò)parse()方法返回scrapy.http.Response對(duì)象,并反饋給爬蟲(chóng)。

3.2取

爬取整個(gè)網(wǎng)頁(yè)完畢,接下來(lái)的就是的取過(guò)程了。

光存儲(chǔ)一整個(gè)網(wǎng)頁(yè)還是不夠用的。

在基礎(chǔ)的爬蟲(chóng)里,這一步可以用正則表達(dá)式來(lái)抓。

在Scrapy里,使用一種叫做 XPath selectors的機(jī)制,它基于 XPath表達(dá)式。

如果你想了解更多selectors和其他機(jī)制你可以查閱相關(guān)資料。

這是一些XPath表達(dá)式的例子和他們的含義

/html/head/title: 選擇HTML文檔元素下面的 <a target="_blank"><u>標(biāo)簽</u></a>。</p> <p style="text-indent: 2em;"> /html/head/title/text(): 選擇前面提到的<title> 元素下面的文本內(nèi)容</p> <p style="text-indent: 2em;"> //td: 選擇所有 <td> 元素</p> <p style="text-indent: 2em;"> //div[@class="mine"]: 選擇所有包含 class="mine" 屬性的div 標(biāo)簽元素</p> <p style="text-indent: 2em;"> 以上只是幾個(gè)使用XPath的簡(jiǎn)單例子,但是實(shí)際上XPath非常強(qiáng)大。</p> <p style="text-indent: 2em;"> 為了方便使用XPaths,Scrapy提供XPathSelector 類,有兩種可以選擇,HtmlXPathSelector(HTML數(shù)據(jù)解析)和XmlXPathSelector(XML數(shù)據(jù)解析)。</p> <p style="text-indent: 2em;"> 必須通過(guò)一個(gè) Response 對(duì)象對(duì)他們進(jìn)行實(shí)例化操作。</p> <p style="text-indent: 2em;"> 你會(huì)發(fā)現(xiàn)Selector對(duì)象展示了文檔的節(jié)點(diǎn)結(jié)構(gòu)。因此,第一個(gè)實(shí)例化的selector必與根節(jié)點(diǎn)或者是整個(gè)目錄有關(guān) 。</p> <p style="text-indent: 2em;"> 在Scrapy里面,Selectors 有四種基礎(chǔ)的方法(點(diǎn)擊查看API文檔):</p> <p style="text-indent: 2em;"> xpath():返回一系列的selectors,每一個(gè)select表示一個(gè)xpath參數(shù)表達(dá)式選擇的節(jié)點(diǎn)</p> <p style="text-indent: 2em;"> css():返回一系列的selectors,每一個(gè)select表示一個(gè)css參數(shù)表達(dá)式選擇的節(jié)點(diǎn)</p> <p style="text-indent: 2em;"> extr<a target="_blank"><u>ac</u></a>t():返回一個(gè)unicode字符串,為選中的數(shù)據(jù)</p> <p style="text-indent: 2em;"> re():返回一串一個(gè)unicode字符串,為使用正則表達(dá)式抓取出來(lái)的內(nèi)容</p> <p style="text-indent: 2em;"> 3.3xpath實(shí)驗(yàn)</p> <p style="text-indent: 2em;"> 下面我們?cè)赟hell里面嘗試一下Selector的用法。</p> <p style="text-indent: 2em;"> 實(shí)驗(yàn)的網(wǎng)址:http://www.dmoz.org/Computers/Programming/Languages/Python/Books/</p> <p align="center"> <img src="http://file.elecfans.com/web1/M00/7D/BB/pIYBAFwKK3OAMag2AAB7_dZ30Cg048.png" /></p> <p style="text-indent: 2em;"> 熟悉完了實(shí)驗(yàn)的小白鼠,接下來(lái)就是用Shell爬取網(wǎng)頁(yè)了。</p> <p style="text-indent: 2em;"> 進(jìn)入到項(xiàng)目的頂層目錄,也就是第一層tutorial文件夾下,在cmd中輸入:</p> <p style="text-indent: 2em;"> <img src="http://file.elecfans.com/web1/M00/7D/BB/pIYBAFwKK3OAUgvEAAAvjyHSf78514.png" /></p> <p style="text-indent: 2em;"> 回車后可以看到如下的內(nèi)容:</p> <p align="center"> <img src="http://file.elecfans.com/web1/M00/7D/BB/pIYBAFwKK3SATik7AAHbS5Z2YkQ587.png" /></p> <p style="text-indent: 2em;"> 在Shell載入后,你將獲得response回應(yīng),存儲(chǔ)在本地變量 response中。</p> <p style="text-indent: 2em;"> 所以如果你輸入response.body,你將會(huì)看到response的body部分,也就是抓取到的頁(yè)面內(nèi)容:</p> <p align="center"> <img src="http://file.elecfans.com/web1/M00/7D/BB/pIYBAFwKK3aAFYdPAALND72cYfk023.png" /></p> <p style="text-indent: 2em;"> 或者輸入response.headers 來(lái)查看它的 header部分:</p> <p align="center"> <img src="http://file.elecfans.com/web1/M00/7D/BB/pIYBAFwKK3mAe8tVAALBJa2ARnE086.png" /></p> <p style="text-indent: 2em;"> 現(xiàn)在就像是一大堆沙子握在手里,里面藏著我們想要的金子,所以下一步,就是用篩子搖兩下,把雜質(zhì)出去,選出關(guān)鍵的內(nèi)容。</p> <p style="text-indent: 2em;"> selector就是這樣一個(gè)篩子。</p> <p style="text-indent: 2em;"> 在舊的版本中,Shell實(shí)例化兩種selectors,一個(gè)是解析HTML的 hxs 變量,一個(gè)是解析XML 的 xxs 變量。</p> <p style="text-indent: 2em;"> 而現(xiàn)在的Shell為我們準(zhǔn)備好的selector對(duì)象,sel,可以根據(jù)返回的數(shù)據(jù)類型自動(dòng)選擇最佳的解析方案(XML or HTML)。</p> <p style="text-indent: 2em;"> 然后我們來(lái)?yè)v弄一下!~</p> <p style="text-indent: 2em;"> 要徹底搞清楚這個(gè)問(wèn)題,首先先要知道,抓到的頁(yè)面到底是個(gè)什么樣子。</p> <p style="text-indent: 2em;"> 比如,我們要抓取網(wǎng)頁(yè)的標(biāo)題,也就是<title>這個(gè)標(biāo)簽:</p> <p align="center"> <img src="http://file.elecfans.com/web1/M00/7D/BB/pIYBAFwKK3mAYZubAAAMzxt2yJ4194.png" /></p> <p style="text-indent: 2em;"> 可以輸入:</p> <p style="text-indent: 2em;"> <img src="http://file.elecfans.com/web1/M00/7D/BB/pIYBAFwKK3mAdRyfAAAHpvVtoOo344.png" /></p> <p style="text-indent: 2em;"> 結(jié)果就是:</p> <p style="text-indent: 2em;"> <img src="http://file.elecfans.com/web1/M00/7D/BB/pIYBAFwKK3qAQejMAAAvPB0_p9g042.png" /></p> <p style="text-indent: 2em;"> 這樣就能把這個(gè)標(biāo)簽取出來(lái)了,用extract()和text()還可以進(jìn)一步做處理。</p> <p style="text-indent: 2em;"> 備注:簡(jiǎn)單的羅列一下有用的xpath路徑表達(dá)式:</p> <p style="text-indent: 2em;"> 表達(dá)式</p> <p style="text-indent: 2em;"> 描述</p> <p style="text-indent: 2em;"> nodename 選取此節(jié)點(diǎn)的所有子節(jié)點(diǎn)。 </p> <p style="text-indent: 2em;"> / 從根節(jié)點(diǎn)選取。 </p> <p style="text-indent: 2em;"> // 從匹配選擇的當(dāng)前節(jié)點(diǎn)選擇文檔中的節(jié)點(diǎn),而不考慮它們的位置。 </p> <p style="text-indent: 2em;"> . 選取當(dāng)前節(jié)點(diǎn)。 </p> <p style="text-indent: 2em;"> .. 選取當(dāng)前節(jié)點(diǎn)的父節(jié)點(diǎn)。 </p> <p style="text-indent: 2em;"> @ 選取屬性。 </p> <p style="text-indent: 2em;"> 全部的實(shí)驗(yàn)結(jié)果如下,In[i]表示第i次實(shí)驗(yàn)的輸入,Out[i]表示第i次結(jié)果的輸出:</p> <p align="center"> <img src="http://file.elecfans.com/web1/M00/7D/BB/pIYBAFwKK3qAVtJSAABq5y-5nTo180.png" /></p> <p style="text-indent: 2em;"> 當(dāng)然title這個(gè)標(biāo)簽對(duì)我們來(lái)說(shuō)沒(méi)有太多的價(jià)值,下面我們就來(lái)真正抓取一些有意義的東西。</p> <p style="text-indent: 2em;"> 使用火狐的審查元素我們可以清楚地看到,我們需要的東西如下:</p> <p align="center"> <img src="http://file.elecfans.com/web1/M00/7D/BB/pIYBAFwKK3uAdCiqAABSVCIAudw253.png" /></p> <p style="text-indent: 2em;"> 我們可以用如下代碼來(lái)抓取這個(gè)<li>標(biāo)簽:</p> <p style="text-indent: 2em;"> <img src="http://file.elecfans.com/web1/M00/7D/BB/pIYBAFwKK3uAEGbvAAAGwo7Xx3w887.png" /></p> <p style="text-indent: 2em;"> 從<li>標(biāo)簽中,可以這樣獲取網(wǎng)站的描述:</p> <p style="text-indent: 2em;"> <img src="http://file.elecfans.com/web1/M00/7D/BB/pIYBAFwKK3yAVaxqAAALDd45q6Y420.png" /></p> <p style="text-indent: 2em;"> 可以這樣獲取網(wǎng)站的標(biāo)題:</p> <p style="text-indent: 2em;"> <img src="http://file.elecfans.com/web1/M00/7D/BB/pIYBAFwKK3yALz5oAAALFMU58tc217.png" /></p> <p style="text-indent: 2em;"> 可以這樣獲取網(wǎng)站的超鏈接:</p> <p style="text-indent: 2em;"> <img src="http://file.elecfans.com/web1/M00/7D/BB/pIYBAFwKK3yAb7ArAAALbImHF8A623.png" /></p> <p style="text-indent: 2em;"> 當(dāng)然,前面的這些例子是直接獲取屬性的方法。</p> <p style="text-indent: 2em;"> 我們注意到xpath返回了一個(gè)對(duì)象列表,</p> <p style="text-indent: 2em;"> 那么我們也可以直接調(diào)用這個(gè)列表中對(duì)象的屬性挖掘更深的節(jié)點(diǎn)</p> <p style="text-indent: 2em;"> (參考:Nesting selectorsandWorking with relative XPathsin theSelectors):</p> <p align="center"> <img src="http://file.elecfans.com/web1/M00/7D/BB/pIYBAFwKK3yAKXYOAAAFlcs_O2Q945.png" /></p> <p style="text-indent: 2em;"> 3.4xpath實(shí)戰(zhàn)</p> <p style="text-indent: 2em;"> 我們用shell做了這么久的實(shí)戰(zhàn),最后我們可以把前面學(xué)習(xí)到的內(nèi)容應(yīng)用到dmoz_spider這個(gè)爬蟲(chóng)中。</p> <p style="text-indent: 2em;"> 在原爬蟲(chóng)的parse函數(shù)中做如下修改:</p> <p align="center"> <img src="http://file.elecfans.com/web1/M00/7D/BB/pIYBAFwKK32APDm_AABf9RQ21Ug644.png" /></p> <p style="text-indent: 2em;"> 注意,我們從scrapy.selector中導(dǎo)入了Selector類,并且實(shí)例化了一個(gè)新的Selector對(duì)象。這樣我們就可以像Shell中一樣操作xpath了。</p> <p style="text-indent: 2em;"> 我們來(lái)試著輸入一下命令運(yùn)行爬蟲(chóng)(在tutorial根目錄里面):</p> <p style="text-indent: 2em;"> scrapy crawl dmoz</p> <p style="text-indent: 2em;"> 運(yùn)行結(jié)果如下:</p> <p align="center"> <img src="http://file.elecfans.com/web1/M00/7D/BB/pIYBAFwKK36Acd2dAAFYpLNs00Y419.png" /></p> <p style="text-indent: 2em;"> 果然,成功的抓到了所有的標(biāo)題。但是好像不太對(duì)啊,怎么Top,Python這種導(dǎo)航欄也抓取出來(lái)了呢?</p> <p style="text-indent: 2em;"> 我們只需要紅圈中的內(nèi)容:</p> <p align="center"> <img src="http://file.elecfans.com/web1/M00/7D/BB/pIYBAFwKK36AOjgYAACr0aW5qJA726.png" /></p> <p style="text-indent: 2em;"> 看來(lái)是我們的xpath語(yǔ)句有點(diǎn)問(wèn)題,沒(méi)有僅僅把我們需要的項(xiàng)目名稱抓取出來(lái),也抓了一些無(wú)辜的但是xpath語(yǔ)法相同的元素。</p> <p style="text-indent: 2em;"> 審查元素我們發(fā)現(xiàn)我們需要的<ul>具有class='directory-url'的屬性,</p> <p style="text-indent: 2em;"> 那么只要把xpath語(yǔ)句改成sel.xpath('//ul[@class="directory-url"]/li')即可</p> <p style="text-indent: 2em;"> 將xpath語(yǔ)句做如下調(diào)整:</p> <p align="center"> <img src="http://file.elecfans.com/web1/M00/7D/BB/pIYBAFwKK3-ACJoMAABs7DrGtok960.png" /></p> <p style="text-indent: 2em;"> 成功抓出了所有的標(biāo)題,絕對(duì)沒(méi)有濫殺無(wú)辜:</p> <p align="center"> <img src="http://file.elecfans.com/web1/M00/7D/BB/pIYBAFwKK4CAHGdkAAGerLsr9Lo332.png" /></p> <p style="text-indent: 2em;"> 3.5使用Item</p> <p style="text-indent: 2em;"> 接下來(lái)我們來(lái)看一看如何使用Item。</p> <p style="text-indent: 2em;"> 前面我們說(shuō)過(guò),Item 對(duì)象是自定義的python字典,可以使用標(biāo)準(zhǔn)字典語(yǔ)法獲取某個(gè)屬性的值:</p> <p align="center"> <img src="http://file.elecfans.com/web1/M00/7D/BB/pIYBAFwKK4GASXyKAAAbv4i09k4540.png" /></p> <p style="text-indent: 2em;"> 作為一只爬蟲(chóng),Spiders希望能將其抓取的數(shù)據(jù)存放到Item對(duì)象中。為了返回我們抓取數(shù)據(jù),spider的最終代碼應(yīng)當(dāng)是這樣:</p> <p align="center"> <img src="http://file.elecfans.com/web1/M00/7D/BB/pIYBAFwKK4GASocHAACB7Ri1uLE782.png" /></p> <p style="text-indent: 2em;"> 4.存儲(chǔ)內(nèi)容(Pipeline)</p> <p style="text-indent: 2em;"> 保存信息的最簡(jiǎn)單的方法是通過(guò)Feed exports,主要有四種:JSON,JSON lines,CSV,XML。</p> <p style="text-indent: 2em;"> 我們將結(jié)果用最常用的JSON導(dǎo)出,命令如下:</p> <p style="text-indent: 2em;"> <img src="http://file.elecfans.com/web1/M00/7D/BB/pIYBAFwKK4GAHhJ1AAAJ_lLGWaQ037.png" /></p> <p style="text-indent: 2em;"> -o 后面是導(dǎo)出文件名,-t 后面是導(dǎo)出類型。</p> <p style="text-indent: 2em;"> 然后來(lái)看一下導(dǎo)出的結(jié)果,用文本編輯器打開(kāi)json文件即可(為了方便顯示,在item中刪去了除了title之外的屬性):</p> <p align="center"> <img src="http://file.elecfans.com/web1/M00/7D/BB/pIYBAFwKK4KACVqfAAIE9eyo2bQ297.png" /></p> <p style="text-indent: 2em;"> 因?yàn)檫@個(gè)只是一個(gè)小型的例子,所以這樣簡(jiǎn)單的處理就可以了。</p> <p style="text-indent: 2em;"> 如果你想用抓取的items做更復(fù)雜的事情,你可以寫一個(gè) Item Pipeline(條目管道)。</p> </div> <div id="u6xb6r1" class="statement2"> 聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 <a class="complaint handleJumpBy" href="/about/tousu.html" target="_blank">舉報(bào)投訴</a> </div> <ul class="hot-main clearfix" style="text-align: right; "> <li data-href="http://srfitnesspt.com/tags/python/"> <span>python</span> <div id="cxgexmx" class="hot-des"> <div id="mpvpvfu" class="detail"> <div id="jkzsibz" class="top clearfix"> <div id="qoz5rkd" class="lf title"> <a href="http://srfitnesspt.com/tags/python" target="_blank">python</a> </div> <div id="rfuozgv" class="lf attend advertTagId" data-id="42127">+關(guān)注</div> </div> <div class="cndkuv0" id="tag_desc_button42127"></div> <div id="csm4mfl" class="clearfix des-detail"> <div id="r6vvayr" class="lf"> <p>關(guān)注</p> <span>54</span> </div> <div id="exvgvnl" class="lf"> <p>文章</p> <span>4759</span> </div> <div id="womgrg6" class="lf"> <p>瀏覽量</p> <span>84303</span> </div> </div> </div> </div> </li><li data-href="http://srfitnesspt.com/tags/爬蟲(chóng)/"> <span>爬蟲(chóng)</span> <div id="et0wwy0" class="hot-des"> <div id="gqwzy6e" class="detail"> <div id="n9hvl91" class="top clearfix"> <div id="v65fdmu" class="lf title"> <a href="http://srfitnesspt.com/tags/爬蟲(chóng)" target="_blank">爬蟲(chóng)</a> </div> <div id="fsuaubd" class="lf attend advertTagId" data-id="187495">+關(guān)注</div> </div> <div class="jhs6f6p" id="tag_desc_button187495"></div> <div id="lat6bys" class="clearfix des-detail"> <div id="pv9un5w" class="lf"> <p>關(guān)注</p> <span>0</span> </div> <div id="ggihnyn" class="lf"> <p>文章</p> <span>82</span> </div> <div id="kkdhfu6" class="lf"> <p>瀏覽量</p> <span>6803</span> </div> </div> </div> </div> </li> </ul> <!-- 廣告中臺(tái) --> <div id="zzxeodo" class="articleContentFooterAD" style="display: none; margin: 20px 0 0 0;"></div> <div id="ipehkit" class="wx_detail"> <p>原文標(biāo)題:爬蟲(chóng)框架Scrapy的第一個(gè)爬蟲(chóng)示例入門教程</p> <p>文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。</p> </div> </div> <div id="tszxiqo" class="art-share-layout mt18" id="shareAddPcb"> <div id="z4r1wuw" class="clearfix"> <a href="javascript:;" class="art-collect J_bottom-coll J_coll-btn" style="visibility:visible">收藏</a> <span id="6mbdlo6" class="ml15 fb"><span id="xc00mom" class="J_stownum"></span>人收藏</span> <div id="adt5qji" class="bdsharebuttonbox fr"> <div id="1o1e5jl" class="share-web-qrcode--detail fl"> <i class="share-web-qrcode--share-icon"></i> <div id="yepbqxz" class="share-web-qrcode--bubble"> <div id="iouegec" class="share-web-qrcode--bubble-inner"> <p class="qrcode-copy-title">掃一掃,分享給好友</p> <div id="6grcrt1" class="qrcode-image"></div> <div id="h0qwdjz" class="qrcode-copy-link"><span>復(fù)制鏈接分享</span></div> </div> </div> </div> </div> </div> <a class="art-like-up J_bottom-like J_like-btn" href="javascript:;"></a> <ul class="art-like-u"></ul> </div> <!-- comment Begin --> <div id="fh66u0c" class="comment-list detaildzs_list" id="comment"> <h2 class="title2">評(píng)論</h2> </div><!-- comment End --> <div id="inpti65" class="c-form" id="cForm"> <!-- 未登錄 --> <p class="c-login special-login">發(fā)布評(píng)論請(qǐng)先 <a href="javascript:;">登錄</a></p> </div> <div id="cdt6k0l" class="article-list"> <p>相關(guān)推薦</p> <div id="cbd0bil" class="article" style="padding-left: 0px;"> <h2 class="title"> <a target="_blank" > <b class='flag-5'>Python</b>數(shù)據(jù)<b class='flag-5'>爬蟲(chóng)</b>學(xué)習(xí)內(nèi)容</a> </h2> <div id="xdfdoep" class="summary">流程來(lái)實(shí)現(xiàn)的。這個(gè)過(guò)程其實(shí)就是模擬了一個(gè)人工瀏覽網(wǎng)頁(yè)的過(guò)程。<b class='flag-5'>Python</b>中<b class='flag-5'>爬蟲(chóng)</b>相關(guān)的包很多:urllib、requests、bs4、<b class='flag-5'>scrapy</b>、pyspider 等,我們可以按照requests</div> <div id="0b0vgvx" class="info"> <span id="kc9wpo1" class="fby">發(fā)表于</span> 05-09 17:25 <!-- <span id="eheoufl" class="art_click_count" data-id=""></span>次閱讀 --> </div> </div> <div id="hs5k5xm" class="article" style="padding-left: 0px;"> <h2 class="title"> <a target="_blank" > <b class='flag-5'>Python</b><b class='flag-5'>爬蟲(chóng)</b>與Web開(kāi)發(fā)庫(kù)盤點(diǎn)</a> </h2> <div id="nyxi1o5" class="summary">的接口,一般我們都是和正則結(jié)合使用,如果對(duì)速度有要求的話,建議用lmxp,它比bs4 速度要快很多。2.<b class='flag-5'>Scrapy</b><b class='flag-5'>爬蟲(chóng)</b>的世界里面有沒(méi)有懶人專用的<b class='flag-5'>框架</b>,當(dāng)然有啦,<b class='flag-5'>scrapy</b>就是其中比</div> <div id="za0voeh" class="info"> <span id="6uqgq6a" class="fby">發(fā)表于</span> 05-10 15:21 <!-- <span id="z0agqah" class="art_click_count" data-id=""></span>次閱讀 --> </div> </div> <div id="jrkz1gi" class="article" style="padding-left: 0px;"> <h2 class="title"> <a target="_blank" > <b class='flag-5'>Python</b><b class='flag-5'>爬蟲(chóng)</b>初學(xué)者需要準(zhǔn)備什么?</a> </h2> <div id="letu0oh" class="summary">了一個(gè)人工瀏覽網(wǎng)頁(yè)的過(guò)程。<b class='flag-5'>Python</b>中<b class='flag-5'>爬蟲(chóng)</b>相關(guān)的包很多:urllib、requests、bs4、<b class='flag-5'>scrapy</b>、pyspider 等,我們可以按照requests 負(fù)責(zé)連接網(wǎng)站,返回網(wǎng)頁(yè),Xpath 用于</div> <div id="pifprya" class="info"> <span id="kqjhjhr" class="fby">發(fā)表于</span> 06-20 17:14 <!-- <span id="tpnktah" class="art_click_count" data-id=""></span>次閱讀 --> </div> </div> <div id="pwhprgn" class="article" style="padding-left: 0px;"> <h2 class="title"> <a target="_blank" > <b class='flag-5'>爬蟲(chóng)</b><b class='flag-5'>框架</b><b class='flag-5'>scrapy</b>包括了以下組件</a> </h2> <div id="ebd6hod" class="summary"><b class='flag-5'>爬蟲(chóng)</b><b class='flag-5'>框架</b><b class='flag-5'>scrapy</b></div> <div id="uz5etel" class="info"> <span id="lmyfuwo" class="fby">發(fā)表于</span> 04-03 15:57 <!-- <span id="mk6ayrt" class="art_click_count" data-id=""></span>次閱讀 --> </div> </div> <div id="yzh5exe" class="article" style="padding-left: 0px;"> <h2 class="title"> <a target="_blank" > <b class='flag-5'>python</b>學(xué)習(xí)筆記-安裝<b class='flag-5'>scrapy</b></a> </h2> <div id="blasyoi" class="summary">以下是基于<b class='flag-5'>python</b>所寫的一個(gè)<b class='flag-5'>爬蟲(chóng)</b>,因?yàn)槲以?jīng)學(xué)過(guò)一點(diǎn)<b class='flag-5'>python</b>,所以對(duì)所有的東西都會(huì)寫的很詳細(xì),同時(shí)肯定會(huì)有錯(cuò)的。。如果您在看這個(gè)博客,希望你可以指出我的錯(cuò)誤之處,并且可以提高之處,謝謝。項(xiàng)目</div> <div id="v5pe6la" class="info"> <span id="vk1tduf" class="fby">發(fā)表于</span> 07-10 07:49 <!-- <span id="1nuvtr6" class="art_click_count" data-id=""></span>次閱讀 --> </div> </div> <div id="a1aysqf" class="article" style="padding-left: 0px;"> <h2 class="title"> <a target="_blank" > <b class='flag-5'>Scrapy</b><b class='flag-5'>爬蟲(chóng)</b>架構(gòu)流程圖詳解</a> </h2> <div id="m6aomfv" class="summary"><b class='flag-5'>Scrapy</b><b class='flag-5'>爬蟲(chóng)</b><b class='flag-5'>框架</b></div> <div id="ewlwlvt" class="info"> <span id="epvw4y6" class="fby">發(fā)表于</span> 09-25 14:15 <!-- <span id="d0hffua" class="art_click_count" data-id=""></span>次閱讀 --> </div> </div> <div id="o6vaw65" class="article" style="padding-left: 0px;"> <h2 class="title"> <a target="_blank" > 使用<b class='flag-5'>scrapy</b>-Redis的<b class='flag-5'>爬蟲(chóng)</b>項(xiàng)目</a> </h2> <div id="q15agvx" class="summary"><b class='flag-5'>scrapy</b>-Redis分布式<b class='flag-5'>爬蟲(chóng)</b></div> <div id="aoqxn66" class="info"> <span id="t1cecsl" class="fby">發(fā)表于</span> 03-24 10:24 <!-- <span id="1gdebqj" class="art_click_count" data-id=""></span>次閱讀 --> </div> </div> <div id="igvfvte" class="article" style="padding-left: 0px;"> <h2 class="title"> <a target="_blank" > Ubuntu 1604后臺(tái)如何運(yùn)行<b class='flag-5'>scrapy</b><b class='flag-5'>爬蟲(chóng)</b>程序</a> </h2> <div id="jyegnuf" class="summary">Ubuntu 1604后臺(tái)運(yùn)行<b class='flag-5'>scrapy</b><b class='flag-5'>爬蟲(chóng)</b>程序</div> <div id="leomkms" class="info"> <span id="gzp6u6n" class="fby">發(fā)表于</span> 05-25 12:32 <!-- <span id="ftsusvf" class="art_click_count" data-id=""></span>次閱讀 --> </div> </div> <div id="fceuori" class="article" style="padding-left: 0px;"> <h2 class="title"> <a target="_blank" > 如何通過(guò)網(wǎng)頁(yè)開(kāi)啟<b class='flag-5'>scrapy</b><b class='flag-5'>爬蟲(chóng)</b>?</a> </h2> <div id="mcebzj1" class="summary">通過(guò)網(wǎng)頁(yè)開(kāi)啟<b class='flag-5'>scrapy</b><b class='flag-5'>爬蟲(chóng)</b>,scrapydganjo結(jié)合</div> <div id="atr0gzs" class="info"> <span id="1gzxmfu" class="fby">發(fā)表于</span> 06-05 15:56 <!-- <span id="wxmx0a6" class="art_click_count" data-id=""></span>次閱讀 --> </div> </div> <div id="iwh5rby" class="article" style="padding-left: 0px;"> <h2 class="title"> <a target="_blank" > 0基礎(chǔ)入門<b class='flag-5'>Python</b><b class='flag-5'>爬蟲(chóng)</b><b class='flag-5'>實(shí)戰(zhàn)</b>課</a> </h2> <div id="sjhshoh" class="summary">學(xué)習(xí)資料良莠不齊<b class='flag-5'>爬蟲(chóng)</b>是一門實(shí)踐性的技能,沒(méi)有<b class='flag-5'>實(shí)戰(zhàn)</b>的課程都是騙人的!所以這節(jié)<b class='flag-5'>Python</b><b class='flag-5'>爬蟲(chóng)</b><b class='flag-5'>實(shí)戰(zhàn)</b>課,將幫到你!課程從0基礎(chǔ)入門開(kāi)始,受眾人群廣</div> <div id="d6i1hsj" class="info"> <span id="px1etmk" class="fby">發(fā)表于</span> 07-25 09:28 <!-- <span id="iqjqeoh" class="art_click_count" data-id=""></span>次閱讀 --> </div> </div> <div id="fzyayxp" class="article" > <h2 class="title"> <a href="http://srfitnesspt.com/soft/study/net/2017/20171207596641.html" target="_blank" > 基于<b class='flag-5'>Scrapy</b>的<b class='flag-5'>爬蟲(chóng)</b><b class='flag-5'>框架</b>的Web應(yīng)用程序漏洞檢測(cè)方法</a> </h2> <div id="xfh0oyf" class="summary">不斷提高和完善防御的方法和手段。針對(duì)此問(wèn)題,提出了一種基于<b class='flag-5'>Scrapy</b>的<b class='flag-5'>爬蟲(chóng)</b><b class='flag-5'>框架</b>的Web應(yīng)用程序漏洞檢測(cè)方法。通過(guò)<b class='flag-5'>框架</b>提供的便利條件對(duì)頁(yè)面進(jìn)行提取分析,根據(jù)不同的攻擊方式生成特有的攻擊</div> <div id="vg0lzjy" class="info"> <span id="zj9s6su" class="fby">發(fā)表于</span> 12-07 09:48 <!-- <span id="z0z1msu" class="art_click_count" data-id=""></span>次閱讀 --> <span id="ayayrpq" class="sp">?</span><span id="nbrmgwq" class="" data-id="">2</span>次下載 </div> <a href="http://srfitnesspt.com/soft/study/net/2017/20171207596641.html" class="thumb" target="_blank"> <img src="https://file.elecfans.com/web2/M00/49/75/poYBAGKhwLiAcn8PAAASbfjQZZM951.jpg" alt="基于<b class='flag-5'>Scrapy</b>的<b class='flag-5'>爬蟲(chóng)</b><b class='flag-5'>框架</b>的Web應(yīng)用程序漏洞檢測(cè)方法" /> </a> </div> <div id="y6mbubm" class="article" style="padding-left: 0px;"> <h2 class="title"> <a href="http://srfitnesspt.com/d/889110.html" target="_blank" > <b class='flag-5'>python</b><b class='flag-5'>爬蟲(chóng)</b><b class='flag-5'>框架</b>有哪些</a> </h2> <div id="yrgibrl" class="summary">本視頻主要詳細(xì)介紹了<b class='flag-5'>python</b><b class='flag-5'>爬蟲(chóng)</b><b class='flag-5'>框架</b>有哪些,分別是Django、CherryPy、Web2py、TurboGears、Pylons、Grab、BeautifulSoup、Cola。</div> <div id="5bqjxmo" class="info"> <a class="face s" href="" target="_blank" rel="nofollow"> <img src="" alt="的頭像"/> </a> <span id="1o6tjzk" class="fby">發(fā)表于</span> 03-22 16:13 <!-- <span id="rpnyf14" class="art_click_count" data-id=""></span>次閱讀 --> <span id="gy06ik0" class="sp">?</span><span id="pmwhoqx" class="" data-id="">6760</span>次閱讀 </div> </div> <div id="egeunc5" class="article" style="padding-left: 0px;"> <h2 class="title"> <a href="http://srfitnesspt.com/d/1436835.html" target="_blank" > windows下如何新建<b class='flag-5'>爬蟲(chóng)</b>虛擬環(huán)境和進(jìn)行<b class='flag-5'>Scrapy</b>安裝</a> </h2> <div id="5a6fuel" class="summary"><b class='flag-5'>Scrapy</b>是<b class='flag-5'>Python</b>開(kāi)發(fā)的一個(gè)快速、高層次的屏幕抓取和web抓取<b class='flag-5'>框架</b>,用于抓取web站點(diǎn)并從頁(yè)面中提取結(jié)構(gòu)化的數(shù)據(jù)。<b class='flag-5'>Scrapy</b>吸引人的地方在于它是一個(gè)</div> <div id="plrghy0" class="info"> <a class="face s" href="" target="_blank" rel="nofollow"> <img src="" alt="的頭像"/> </a> <span id="1kn6kzb" class="fby">發(fā)表于</span> 12-25 18:03 <!-- <span id="xvxuncq" class="art_click_count" data-id=""></span>次閱讀 --> <span id="96prxny" class="sp">?</span><span id="nsujljt" class="" data-id="">563</span>次閱讀 </div> </div> <div id="xmo0j5l" class="article" > <h2 class="title"> <a href="http://srfitnesspt.com/d/2018353.html" target="_blank" > <b class='flag-5'>Scrapy</b>怎么爬取<b class='flag-5'>Python</b>文件</a> </h2> <div id="1btrsqs" class="summary">我們介紹了<b class='flag-5'>Scrapy</b><b class='flag-5'>框架</b>運(yùn)行基本原理,緊接著我們介紹了如何利用<b class='flag-5'>Scrapy</b>爬取文本數(shù)據(jù)</div> <div id="mapzoqf" class="info"> <a class="face s" href="" target="_blank" rel="nofollow"> <img src="" alt="的頭像"/> </a> <span id="ts66m0j" class="fby">發(fā)表于</span> 02-24 15:16 <!-- <span id="6kl4mfn" class="art_click_count" data-id=""></span>次閱讀 --> <span id="odo5xio" class="sp">?</span><span id="x15lsmo" class="" data-id="">532</span>次閱讀 </div> <a href="http://srfitnesspt.com/d/2018353.html" class="thumb" target="_blank"> <img src="https://file.elecfans.com/web2/M00/93/A9/poYBAGP4Y_6AB05JAAFNTAiOhI4194.jpg" alt="<b class='flag-5'>Scrapy</b>怎么爬取<b class='flag-5'>Python</b>文件" /> </a> </div> <div id="nw5mxet" class="article" style="padding-left: 0px;"> <h2 class="title"> <a href="http://srfitnesspt.com/d/2299204.html" target="_blank" > feapder:一款功能強(qiáng)大的<b class='flag-5'>爬蟲(chóng)</b><b class='flag-5'>框架</b></a> </h2> <div id="gm1n6bz" class="summary">今天推薦一款更加簡(jiǎn)單、輕量級(jí),且功能強(qiáng)大的<b class='flag-5'>爬蟲(chóng)</b><b class='flag-5'>框架</b>:feapder 項(xiàng)目地址: https://github.com/Boris-code/feapder 2. 介紹及安裝 和 <b class='flag-5'>Scrapy</b> 類似</div> <div id="rku0oih" class="info"> <a class="face s" href="" target="_blank" rel="nofollow"> <img src="" alt="的頭像"/> </a> <span id="svlntdk" class="fby">發(fā)表于</span> 11-01 09:48 <!-- <span id="eon0ujt" class="art_click_count" data-id=""></span>次閱讀 --> <span id="qwumbmt" class="sp">?</span><span id="h6dtf6m" class="" data-id="">982</span>次閱讀 </div> </div> </div> </div><!-- .main-wrap --> </article> <aside class="aside"> <input type="hidden" name="zl_mp" value="1"> <div id="whg6mxw" class="author-box"> <div id="wtrkib9" class="author"> <div id="wzy61x4" class="author-msg"> <a href="/d/user/2737481/" class="face" target="_blank"><img src="https://bbs.elecfans.com/uc_server/data/avatar/002/73/74/81_avatar_big.jpg"/></a> <h2 class="author-msg-name"><a href="/d/user/2737481/" target="_blank">馬哥Linux運(yùn)維</a></h2> <!-- 需要條件判斷 --> <span id="nstz1fh" class="is-coulmn-author">專欄</span> </div> <div id="55pvgvo" class="count"> <span id="b10eki0" class="count-item"> <span id="uxw1ufd" class="column-article-count">0</span> <b>文章</b> </span> <span id="566kehp" class="count-item"> <span id="isrtvlw" class="column-view-count">0</span> <b>閱讀</b> </span> <span id="czsubdb" class="count-item"> <span id="np51rx1" class="column-follow-count">0</span> <b>粉絲</b> </span> <span id="ijprkry" class="count-item"> <span id="rapwyrh" class="column-praise-count">0</span> <b>點(diǎn)贊</b> </span> </div> <div id="uhdx0rb" class="author-opreat"> <a class="author-collect" id="follow">關(guān)注</a> <a href="http://srfitnesspt.com/d/user/2737481/" title="***的空間" target="_blank">個(gè)人主頁(yè)</a> <!-- 需要條件判斷 --> </div> <!-- <span id="vf9pikr" class="followNum"> <strong>49</strong>人關(guān)注 </span> --> </div> <div id="a1cdxvy" class="author-recom"> <ul class="author-recom-list"> <li id="s1rkqag" class="author-recom-item"> <span id="ns6hagm" class="author-recom-type-hot">Hot</span> <a href=http://srfitnesspt.com/d/716931.html>Linux如何使用XFS?</a> </li><li id="r1hrqsz" class="author-recom-item"> <span id="5y569ye" class="author-recom-type-hot">Hot</span> <a href=http://srfitnesspt.com/d/700023.html>keepalived及LVS概述,KeepAlived工作原理</a> </li> <li id="melyqoz" class="author-recom-item"> <span id="uncncdk" class="author-recom-type-new">New</span> <a href=http://srfitnesspt.com/d/6248602.html>nginx日志配置方法</a> </li><li id="awptacz" class="author-recom-item"> <span id="ou6dwmo" class="author-recom-type-new">New</span> <a href=http://srfitnesspt.com/d/6248490.html>Linux日志管理經(jīng)驗(yàn)總結(jié)</a> </li> </ul> </div> </div> <div class="v0sq5mk" id="new-adsm-berry" ></div> <div class="oonpw0j" id="new-company-berry"></div> <!-- 推薦文章【主站文章顯示這個(gè)】 --> <div id="jnlwyxz" class="aside-section"> <div id="ryayjzc" class="aside-section-head"> <h3 class="aside-section-name">精選推薦</h3> <a class="aside-section-more" id="recMore" href="http://srfitnesspt.com/d/">更多<i class="arrow_right"></i></a> </div> <div id="ud4wywg" class="aside-section-body"> <ul class="article-rec-tabs"> <li data-index="0" class="is-active">文章</li> <li data-index="2" >資料</li> <li data-index="3" >帖子</li> </ul> <!-- 文章默認(rèn)展示 start --> <ul class="article-rec-content is-active"> <li id="cnbcr0r" class="article-rec-item"> <div id="cj9qjpn" class="col-right"> <h4 class="text-title"> <a href="http://srfitnesspt.com/d/6259914.html" target="_blank"> <span>GPS接收機(jī)的位同步和幀同步驗(yàn)證過(guò)程</span> </a> </h4> <div id="lprxrqn" class="text-content"> <a class="text-name" href="http://srfitnesspt.com/d/user/1419709/" target="_blank">FPGA十年老鳥(niǎo)</a> <div id="gp6bc4t" class="text-date">1天前</div> <div id="lvtnu5l" class="text-view">466 閱讀</div> </div> </div> </li><li id="5qsit4l" class="article-rec-item"> <div id="ld9hsys" class="col-right"> <h4 class="text-title"> <a href="http://srfitnesspt.com/d/6259752.html" target="_blank"> <span>智能體一體機(jī),大模型時(shí)代一葉見(jiàn)菩提</span> </a> </h4> <div id="twqflf4" class="text-content"> <a class="text-name" href="http://srfitnesspt.com/d/user/3450344/" target="_blank">腦極體</a> <div id="r6aki1j" class="text-date">1天前</div> <div id="p0lklbu" class="text-view">456 閱讀</div> </div> </div> </li><li id="yoemsck" class="article-rec-item"> <div id="jb6u41j" class="col-right"> <h4 class="text-title"> <a href="http://srfitnesspt.com/d/6259409.html" target="_blank"> <span>如何優(yōu)化高頻電路板 layout 設(shè)計(jì)?</span> </a> </h4> <div id="5ysitat" class="text-content"> <a class="text-name" href="http://srfitnesspt.com/d/c1527817" target="_blank">深圳(耀創(chuàng))電子科技有限公司</a> <div id="5ijiohn" class="text-date">1天前</div> <div id="liwiprb" class="text-view">396 閱讀</div> </div> </div> </li><li id="h6dwloe" class="article-rec-item"> <div id="6kzsqbi" class="col-right"> <h4 class="text-title"> <a href="http://srfitnesspt.com/d/6258377.html" target="_blank"> <span>晶振在“智能三表”中的應(yīng)用</span> </a> </h4> <div id="n6ta5jg" class="text-content"> <a class="text-name" href="http://srfitnesspt.com/d/c4199007" target="_blank">揚(yáng)興科技</a> <div id="0emfdod" class="text-date">1天前</div> <div id="ef0iki1" class="text-view">375 閱讀</div> </div> </div> </li><li id="kryzhba" class="article-rec-item"> <div id="o6oq0t5" class="col-right"> <h4 class="text-title"> <a href="http://srfitnesspt.com/d/6258293.html" target="_blank"> <span>N通道和P通道場(chǎng)效應(yīng)晶體管(FET)之間的區(qū)別是什么?</span> </a> </h4> <div id="ehkahr5" class="text-content"> <a class="text-name" href="http://srfitnesspt.com/d/c6170747" target="_blank">深圳市浮思特科技有限公司</a> <div id="vj00bmk" class="text-date">1天前</div> <div id="10rbryi" class="text-view">364 閱讀</div> </div> </div> </li> </ul> <!-- 文章 end --> <!-- 方案默認(rèn)展示 start --> <!-- 方案 end --> <ul class="article-rec-content"> <li id="x0a5c6y" class="article-rec-item"> <div id="jbz61ge" class="col-left"> <div id="icjcixx" class="icon-type rar"></div> </div> <div id="5bjc0k9" class="col-right"> <h4 class="text-title"> <a href="http://srfitnesspt.com/soft/test/2010/2010081285335.html" target="_blank"> <span>用于Infiniium 9000系列示波器的RS-232/U</span> </a> </h4> <div id="lsmotwm" class="text-content"> <a class="text-name" target="_blank">路過(guò)秋天</a> <div id="yfgji64" class="text-date">1014</div> <div id="fb0qbrt" class="text-date">3積分</div> <div id="p664bls" class="text-down">18下載</div> </div> </div> </li><li id="ueub6yi" class="article-rec-item"> <div id="lat0t6c" class="col-left"> <div id="zaqsrg1" class="icon-type pdf"></div> </div> <div id="aywhwh4" class="col-right"> <h4 class="text-title"> <a href="http://srfitnesspt.com/soft/32/2011/20110415194857.html" target="_blank"> <span>西門子S7-300 PLC編程資料匯編</span> </a> </h4> <div id="cfuacsd" class="text-content"> <a class="text-name" target="_blank">315879</a> <div id="0kzx15k" class="text-date">13.5 MB</div> <div id="fpfq0uo" class="text-date">免費(fèi)</div> <div id="mfle5tj" class="text-down">0下載</div> </div> </div> </li><li id="smn0oho" class="article-rec-item"> <div id="0fouwcr" class="col-left"> <div id="gzozfun" class="icon-type rar"></div> </div> <div id="ebc5e5l" class="col-right"> <h4 class="text-title"> <a href="http://srfitnesspt.com/soft/Mec/2022/202204111815628.html" target="_blank"> <span>基于鴻蒙適配移植的開(kāi)源彈幕解析繪制引擎項(xiàng)目</span> </a> </h4> <div id="t1j0wlr" class="text-content"> <a class="text-name" target="_blank">姚小熊27</a> <div id="0citsdc" class="text-date">0.57 MB</div> <div id="y1giw6s" class="text-date">免費(fèi)</div> <div id="0pnunuw" class="text-down">2下載</div> </div> </div> </li><li id="alwm5s1" class="article-rec-item"> <div id="4usms5c" class="col-left"> <div id="dibryjh" class="icon-type zip"></div> </div> <div id="crkakvu" class="col-right"> <h4 class="text-title"> <a href="http://srfitnesspt.com/soft/Mec/2022/202206211850929.html" target="_blank"> <span>Annoy求近似最近鄰的庫(kù)</span> </a> </h4> <div id="dlsujik" class="text-content"> <a class="text-name" target="_blank">姬盼希</a> <div id="dj1efcj" class="text-date">0.66 MB</div> <div id="rfcmtad" class="text-date">2積分</div> <div id="tlzoyay" class="text-down">1下載</div> </div> </div> </li><li id="5kzfpf1" class="article-rec-item"> <div id="hya04a0" class="col-left"> <div id="aqax1da" class="icon-type zip"></div> </div> <div id="nbl5aqr" class="col-right"> <h4 class="text-title"> <a href="http://srfitnesspt.com/soft/Mec/2022/202206271853475.html" target="_blank"> <span>SYPhotoPicker iOS圖像選擇</span> </a> </h4> <div id="4st0fyw" class="text-content"> <a class="text-name" target="_blank">硬件工程師1</a> <div id="xi4qshw" class="text-date">1.68 MB</div> <div id="epz01wl" class="text-date">2積分</div> <div id="k6zyfz5" class="text-down">1下載</div> </div> </div> </li> </ul> <!-- 資料 end --> <!-- 帖子默認(rèn)展示 start --> <ul class="article-rec-content"> <li id="cv9yixd" class="article-rec-item"> <div id="0vkdbz1" class="col-right"> <h4 class="text-title"> <a target="_blank"> <span>使用DMA轉(zhuǎn)運(yùn)SPI時(shí)只有第一段數(shù)據(jù)正確,后面全為ffff</span> </a> </h4> <div id="vfokge1" class="text-content"> <a class="text-name" target="_blank">港榮蒸蛋糕</a> <div id="1hktrta" class="text-date">2天前</div> <div id="xmfd5ik" class="text-view">285 閱讀</div> </div> </div> </li><li id="o5yayi6" class="article-rec-item"> <div id="xbibh6o" class="col-right"> <h4 class="text-title"> <a target="_blank"> <span>【BearPi-Pico H3863星閃開(kāi)發(fā)板體驗(yàn)連載】星閃超低功耗SLE透?jìng)鞴δ軠y(cè)試</span> </a> </h4> <div id="wq15ncy" class="text-content"> <a class="text-name" target="_blank">yun_sun</a> <div id="5ak6u5i" class="text-date">2天前</div> <div id="ls6ou6i" class="text-view">248 閱讀</div> </div> </div> </li><li id="bewm65y" class="article-rec-item"> <div id="dxepegj" class="col-right"> <h4 class="text-title"> <a target="_blank"> <span>電阻R2有什么用</span> </a> </h4> <div id="ibd91oz" class="text-content"> <a class="text-name" target="_blank">jf_27282249</a> <div id="ntrjpm1" class="text-date">1天前</div> <div id="m0m1tzj" class="text-view">342 閱讀</div> </div> </div> </li><li id="omxwp01" class="article-rec-item"> <div id="rphwhwm" class="col-right"> <h4 class="text-title"> <a target="_blank"> <span>嵌入式學(xué)習(xí)-飛凌嵌入式ElfBoard ELF 1板卡-串口通訊編程示例之串口編寫程序</span> </a> </h4> <div id="9xhe46r" class="text-content"> <a class="text-name" target="_blank">jf_13411809</a> <div id="dxnfgn0" class="text-date">1天前</div> <div id="lp5zjya" class="text-view">304 閱讀</div> </div> </div> </li><li id="aywxmxm" class="article-rec-item"> <div id="iibhf16" class="col-right"> <h4 class="text-title"> <a target="_blank"> <span>交流電壓采集,偏置電壓中的10和110是什么意思呢</span> </a> </h4> <div id="i54i1ci" class="text-content"> <a class="text-name" target="_blank">啥都喜歡</a> <div id="r5jy05a" class="text-date">2天前</div> <div id="yprpz0t" class="text-view">765 閱讀</div> </div> </div> </li> </ul> <!-- 帖子 end --> <!-- 視頻 start --> <!-- 視頻 end --> <!-- 話題 start --> <!-- 話題 end --> </div> </div> <!-- <div class="v65xusd" id="new-company-zone"></div> --> <div class="woh01sc" id="new-course-berry" ></div> <!-- 推薦專欄 --> <div id="adgvbua" class="aside-section dzs-article-column"> <div id="h65ets5" class="aside-section-head"> <h3 class="aside-section-name">推薦專欄</h3> <a class="aside-section-more" href="http://srfitnesspt.com/d/column">更多<i class="arrow_right"></i></a> </div> <div id="0ntljph" class="aside-section-body"> <ul class="dzs-article-column-list"></ul> </div> </div> <div class="d65zxhf" id="new-webinar-berry"></div> <div class="fqoqwge" id="IndexRightBottom"></div> </aside> </section> <!-- Page #content End --> <input type="hidden" name="aid" id="webID" value="828560"> <!-- $article['store_flag'] = 15 為企業(yè)號(hào) --> <input type="hidden" class="store_flag" value="0"> <input type="hidden" class="evip_type" value="0"> <!--企業(yè)號(hào)文章id --> <input type="hidden" class="evip_article_id" value=""> <!-- 企業(yè)號(hào)id --> <input type="hidden" class="evip_id" value=""> <!--- 企業(yè)號(hào)是否付費(fèi)1-是 0-否 ---> <input type="hidden" name="isPayEvip" class="isPayEvip" value="0"> <input type="hidden" class="vip-limit-read" value="0"> <input type="hidden" id="headerType" value="data"> <input type="hidden" id="details_right_hero" value="true"> <input type="hidden" id="currentUserID" value="" /> <div id="na1oual" class="gather-bottom"></div> <link rel="stylesheet" href="/static/footer/footer.css?20230919" /> <div id="eywcwl0" class="public-footer"> <div id="adl1wci" class="public-footer__hd"> <dl> <dt>華秋(原“華強(qiáng)聚豐”):</dt> <dd>電子發(fā)燒友</dd> <dd>華秋開(kāi)發(fā)</dd> <dd>華秋電路(原"華強(qiáng)PCB")</dd> <dd>華秋商城(原"華強(qiáng)芯城")</dd> <dd>華秋智造</dd> </dl> <dl> <dd><a target="_blank" rel="nofollow">My ElecFans </a></dd> <dd><a target="_blank" href="http://srfitnesspt.com/app/"> APP </a></li> <dd><a target="_blank" href="http://srfitnesspt.com/about/sitemap.html">網(wǎng)站地圖</a></dd> </dl> </div> <div id="jpjcbm5" class="public-footer__main"> <dl> <dt>設(shè)計(jì)技術(shù)</dt> <dd><a href="http://srfitnesspt.com/pld/" target="_blank">可編程邏輯</a></dd> <dd><a href="http://srfitnesspt.com/article/83/" target="_blank">電源/新能源</a></dd> <dd><a href="http://srfitnesspt.com/article/88/142/" target="_blank">MEMS/傳感技術(shù)</a></dd> <dd><a href="http://srfitnesspt.com/article/85/" target="_blank">測(cè)量?jī)x表</a></dd> <dd><a href="http://srfitnesspt.com/emb/" target="_blank">嵌入式技術(shù)</a></dd> <dd><a href="http://srfitnesspt.com/article/90/155/" target="_blank">制造/封裝</a></dd> <dd><a href="http://srfitnesspt.com/analog/" target="_blank">模擬技術(shù)</a></dd> <dd><a href="http://srfitnesspt.com/tongxin/rf/" target="_blank">RF/無(wú)線</a></dd> <dd><a href="http://srfitnesspt.com/emb/jiekou/" target="_blank">接口/總線/驅(qū)動(dòng)</a></dd> <dd><a href="http://srfitnesspt.com/emb/dsp/" target="_blank">處理器/DSP</a></dd> <dd><a href="http://srfitnesspt.com/bandaoti/eda/" target="_blank">EDA/IC設(shè)計(jì)</a></dd> <dd><a href="http://srfitnesspt.com/consume/cunchujishu/" target="_blank">存儲(chǔ)技術(shù)</a></dd> <dd><a href="http://srfitnesspt.com/xianshi/" target="_blank">光電顯示</a></dd> <dd><a href="http://srfitnesspt.com/emc_emi/" target="_blank">EMC/EMI設(shè)計(jì)</a></dd> <dd><a href="http://srfitnesspt.com/connector/" target="_blank">連接器</a></dd> </dl> <dl> <dt>行業(yè)應(yīng)用</dt> <dd><a href="http://srfitnesspt.com/led/" target="_blank">LEDs </a></dd> <dd><a href="http://srfitnesspt.com/qichedianzi/" target="_blank">汽車電子</a></dd> <dd><a href="http://srfitnesspt.com/video/" target="_blank">音視頻及家電</a></dd> <dd><a href="http://srfitnesspt.com/tongxin/" target="_blank">通信網(wǎng)絡(luò)</a></dd> <dd><a href="http://srfitnesspt.com/yiliaodianzi/" target="_blank">醫(yī)療電子</a></dd> <dd><a href="http://srfitnesspt.com/rengongzhineng/" target="_blank">人工智能</a></dd> <dd><a href="http://srfitnesspt.com/vr/" target="_blank">虛擬現(xiàn)實(shí)</a></dd> <dd><a href="http://srfitnesspt.com/wearable/" target="_blank">可穿戴設(shè)備</a></dd> <dd><a href="http://srfitnesspt.com/jiqiren/" target="_blank">機(jī)器人</a></dd> <dd><a href="http://srfitnesspt.com/application/Security/" target="_blank">安全設(shè)備/系統(tǒng)</a></dd> <dd><a href="http://srfitnesspt.com/application/Military_avionics/" target="_blank">軍用/航空電子</a></dd> <dd><a href="http://srfitnesspt.com/application/Communication/" target="_blank">移動(dòng)通信</a></dd> <dd><a href="http://srfitnesspt.com/kongzhijishu/" target="_blank">工業(yè)控制</a></dd> <dd><a href="http://srfitnesspt.com/consume/bianxiedianzishebei/" target="_blank">便攜設(shè)備</a></dd> <dd><a href="http://srfitnesspt.com/consume/chukongjishu/" target="_blank">觸控感測(cè)</a></dd> <dd><a href="http://srfitnesspt.com/iot/" target="_blank">物聯(lián)網(wǎng)</a></dd> <dd><a href="http://srfitnesspt.com/dianyuan/diandongche_xinnenyuan/" target="_blank">智能電網(wǎng)</a></dd> <dd><a href="http://srfitnesspt.com/blockchain/" target="_blank">區(qū)塊鏈</a></dd> <dd><a href="http://srfitnesspt.com/xinkeji/" target="_blank">新科技</a></dd> </dl> <dl> <dt>特色內(nèi)容</dt> <dd><a href="http://srfitnesspt.com/d/column/" target="_blank">專欄推薦</a></dd> <dd><a target="_blank" >學(xué)院</a></dd> <dd><a target="_blank" >設(shè)計(jì)資源</a></dd> <dd><a target="_blank" href="http://srfitnesspt.com/technical/">設(shè)計(jì)技術(shù)</a></dd> <dd><a target="_blank" href="http://srfitnesspt.com/baike/">電子百科</a></dd> <dd><a target="_blank" href="http://srfitnesspt.com/dianzishipin/">電子視頻</a></dd> <dd><a target="_blank" href="http://srfitnesspt.com/yuanqijian/">元器件知識(shí)</a></dd> <dd><a target="_blank" href="http://srfitnesspt.com/tools/">工具箱</a></dd> <dd><a target="_blank" href="http://srfitnesspt.com/vip/#choose">VIP會(huì)員</a></dd> <dd><a target="_blank" href="http://srfitnesspt.com/article/special/">最新技術(shù)文章</a></dd> </dl> <dl> <dt>社區(qū)</dt> <dd><a target="_blank" >小組</a></dd> <dd><a target="_blank" >論壇</a></dd> <dd><a target="_blank" >問(wèn)答</a></dd> <dd><a target="_blank" >評(píng)測(cè)試用</a></dd> <dt><a target="_blank" >企業(yè)服務(wù)</a></dt> <dd><a target="_blank" >產(chǎn)品</a></dd> <dd><a target="_blank" >資料</a></dd> <dd><a target="_blank" >文章</a></dd> <dd><a target="_blank" >方案</a></dd> <dd><a target="_blank" >企業(yè)</a></dd> </dl> <dl> <dt>供應(yīng)鏈服務(wù)</dt> <dd><a target="_blank" href="http://srfitnesspt.com/kf/">硬件開(kāi)發(fā)</a></dd> <dd><a target="_blank" >華秋電路</a></dd> <dd><a target="_blank" >華秋商城</a></dd> <dd><a target="_blank" >華秋智造</a></dd> <dd><a target="_blank" >nextPCB</a></dd> <dd><a target="_blank" >BOM配單</a></dd> <dt>媒體服務(wù)</dt> <dd><a target="_blank" href="http://srfitnesspt.com/about/service.html">網(wǎng)站廣告</a></dd> <dd><a target="_blank" >在線研討會(huì)</a></dd> <dd><a target="_blank" >活動(dòng)策劃</a></dd> <dd><a target="_blank" href="http://srfitnesspt.com/news/">新聞發(fā)布</a></dd> <dd><a target="_blank" href="http://srfitnesspt.com/xinpian/ic/">新品發(fā)布</a></dd> <dd><a target="_blank" href="http://srfitnesspt.com/quiz/">小測(cè)驗(yàn)</a></dd> <dd><a target="_blank" href="http://srfitnesspt.com/contest/">設(shè)計(jì)大賽</a></dd> </dl> <dl> <dt>華秋</dt> <dd><a target="_blank" href="http://srfitnesspt.com/about/" rel="nofollow">關(guān)于我們</a></dd> <dd><a target="_blank" rel="nofollow">投資關(guān)系</a></dd> <dd><a target="_blank" rel="nofollow">新聞動(dòng)態(tài)</a></dd> <dd><a target="_blank" href="http://srfitnesspt.com/about/zhaopin.html" rel="nofollow">加入我們</a></dd> <dd><a target="_blank" href="http://srfitnesspt.com/about/contact.html" rel="nofollow">聯(lián)系我們</a></dd> <dd><a target="_blank" href="/about/tousu.html" rel="nofollow">舉報(bào)投訴</a></dd> <dt>社交網(wǎng)絡(luò)</dt> <dd><a target="_blank" rel="nofollow">微博</a></dd> <dt>移動(dòng)端</dt> <dd><a target="_blank" href="http://srfitnesspt.com/app/">發(fā)燒友APP</a></dd> <dd><a target="_blank" >硬聲APP</a></dd> <dd><a target="_blank" >WAP</a></dd> </dl> <dl> <dt>聯(lián)系我們</dt> <dd class="small_tit">廣告合作</dd> <dd>王婉珠:<a href="mailto:wangwanzhu@elecfans.com">wangwanzhu@elecfans.com</a></dd> <dd class="small_tit">內(nèi)容合作</dd> <dd>黃晶晶:<a href="mailto:huangjingjing@elecfans.com">huangjingjing@elecfans.com</a></dd> <dd class="small_tit">內(nèi)容合作(海外)</dd> <dd>張迎輝:<a href="mailto:mikezhang@elecfans.com">mikezhang@elecfans.com</a></dd> <dd class="small_tit">供應(yīng)鏈服務(wù) PCB/IC/PCBA</dd> <dd>江良華:<a href="mailto:lanhu@huaqiu.com">lanhu@huaqiu.com</a></dd> <dd class="small_tit">投資合作</dd> <dd>曾海銀:<a href="mailto:zenghaiyin@huaqiu.com">zenghaiyin@huaqiu.com</a></dd> <dd class="small_tit">社區(qū)合作</dd> <dd>劉勇:<a href="mailto:liuyong@huaqiu.com">liuyong@huaqiu.com</a></dd> </dl> <ul class="qr-code"> <li> <p>關(guān)注我們的微信</p> <img src="/static/main/img/elecfans_code.jpg" alt="關(guān)注我們的微信" /> </li> <li> <p>下載發(fā)燒友APP</p> <img src="/static/main/img/elec_app_code.jpg" alt="下載發(fā)燒友APP" /> </li> <li> <p>電子發(fā)燒友觀察</p> <img src="/static/main/img/elec_focus_code.jpg" alt="電子發(fā)燒友觀察" /> </li> </ul> </div> <div id="llo9jgo" class="public-footer__ft"> <div id="iuapjsz" class="public-footer__ft-inner"> <a target="_blank" class="public-footer__ft-logo"> <img class="is-default" src="/static/footer/image/footer-01-default.png" alt="華秋電子" /> <img class="is-hover" src="/static/footer/image/footer-01.png" alt="華秋電子" /> </a> <div id="nijyvov" class="public-footer__ft-right"> <div id="ivbya6k" class="public-footer__ft-item public-footer__ft-elecfans"> <div id="qflnt11" class="hd"> <a href="http://srfitnesspt.com/" target="_blank"> <!-- <img class="is-default" src="/static/footer/image/footer-02-default.png" alt="華秋發(fā)燒友"> <img class="is-hover" src="/static/footer/image/footer-02.png" alt="華秋發(fā)燒友"> --> <div id="w5zrgdw" class="site_foot_img"> <img src="/static/footer/image/elecfans-logo.svg" alt="華秋發(fā)燒友"> </div> <div id="f0wgzpn" class="site_foot_text">電子工程師社區(qū)</div> </a> </div> </div> <div id="v6whfdw" class="public-footer__ft-item public-footer__ft-hqpcb"> <div id="fdsmkds" class="hd"> <a target="_blank"> <div id="fzx1m60" class="site_foot_img"> <img src="/static/footer/image/hqpcb-logo.svg" alt="華秋電路"> </div> <div id="rgjqfpe" class="site_foot_text">1-32層PCB打樣·中小批量</div> </a> </div> </div> <div id="5tqagmw" class="public-footer__ft-item public-footer__ft-hqchip"> <div id="jdsis56" class="hd"> <a target="_blank"> <div id="xp5aljs" class="site_foot_img"> <img src="/static/footer/image/hqchip-logo.svg" alt="華秋商城"> </div> <div id="cw6flvb" class="site_foot_text">元器件現(xiàn)貨·全球代購(gòu)·SmartBOM</div> </a> </div> </div> <div id="uigzp6y" class="public-footer__ft-item public-footer__ft-smt"> <div id="ngn1s9t" class="hd"> <a target="_blank"> <div id="sy5d16x" class="site_foot_img"> <img src="/static/footer/image/smt-logo.svg" alt="華秋智造"> </div> <div id="5ryrbzw" class="site_foot_text">SMT貼片·PCBA加工</div> </a> </div> </div> <div id="jpwx1et" class="public-footer__ft-item public-footer__ft-nextpcb"> <div id="5t60lfh" class="hd"> <a href="javascript:void(0)" class="next-pck-link"> <div id="bqbheoz" class="site_foot_img"> <img src="/static/footer/image/nextpcb-logo.svg" alt="NextPCB"> </div> <div id="dt1q5pi" class="site_foot_text">PCB Manufacturer</div> </a> </div> </div> <ul class="public-footer__ft-text"> <li><a target="_blank">華秋簡(jiǎn)介</a></li> <li><a target="_blank">企業(yè)動(dòng)態(tài)</a></li> <li><a target="_blank">聯(lián)系我們</a></li> <li><a target="_blank">企業(yè)文化</a></li> <li><a target="_blank">企業(yè)宣傳片</a></li> <li><a target="_blank">加入我們</a></li> </ul> </div> </div> </div> <div id="iimi6n5" class="public-footer__copyright"> <p>版權(quán)所有 ? 湖南華秋數(shù)字科技有限公司 </p> <p>長(zhǎng)沙市望城經(jīng)濟(jì)技術(shù)開(kāi)發(fā)區(qū)航空路6號(hào)手機(jī)智能終端產(chǎn)業(yè)園2號(hào)廠房3層(0731-88081133)</p> <a href="http://srfitnesspt.com/">電子發(fā)燒友</a> <a href="http://srfitnesspt.com/" target="_blank"><strong>(電路圖)</strong></a> <a target="_blank" rel="nofollow">湘公網(wǎng)安備43011202000918</a> <!-- <a href="http://srfitnesspt.com/about/edi.html" target="_blank">電信與信息服務(wù)業(yè)務(wù)經(jīng)營(yíng)許可證:合字B2-20210191</a> --> <a target="_blank" rel="nofollow"> <img src="http://skin.elecfans.com/images/ebsIcon.png" alt="工商網(wǎng)監(jiān)認(rèn)證">工商網(wǎng)監(jiān) </a> <a target="_blank" rel="nofollow">湘ICP備2023018690號(hào)-1</a> </div> <div><input type="hidden" value="0" name="arc_relate_vid"></div> </div> <link rel="stylesheet" href="/webapi/public/project/idt/iconfont/iconfont.css"> <script src="https://skin.elecfans.com/js/elecfans_jquery.js"></script> <script src="https://staticd.elecfans.com/js/plugins.js"></script> <script> (function () { postmessageScript() function postmessageScript() { /* * postmessage */ var con_net = "" if (window.location.href.indexOf(".net") > -1) { con_net = "net" } else { con_net = "com" } var script = document.createElement('script'); script.type = 'text/javascript'; script.src = 'https://passport.elecfans.' + con_net + '/public/pc/plugin/postmessage.js'; var body = document.getElementsByTagName("body").item(0); body.appendChild(script); } /* * 推薦文章無(wú)圖時(shí)樣式修改 * */ $(".article .thumb").each(function () { if ($(this).find('img').attr('src') == "") { $(this).find('img').remove(); $(this).parent().css('padding-left', '0px'); } }); /*百度分享*/ window._bd_share_config = { common: { bdText: '', //自定義分享內(nèi)容 bdDesc: '', //自定義分享摘要 bdPic: '' }, share: [{ "bdSize": 60 }] } with(document) 0[(getElementsByTagName('head')[0] || body).appendChild(createElement('script')).src = '']; })(); var add_url = '/d/article/write/'; var check_allow = "/d/api/iscantalk.html"; var click_items_length = $('.art_click_count').length; if (click_items_length > 0) { var id_str = ''; $('.art_click_count').each(function () { id_str += $(this).attr('data-id') + ','; }) var url = "/d/api/getclickbyids.html"; var id_data = 'id_str=' + id_str; $.ajax({ url: url, data: id_data, type: 'post', dataType: 'json', success: function (re) { if (re.list.length >= 1) { var list = re.list; for (var i in list) { var temp_id = list[i]['id']; var temp_span = $(".art_click_count[data-id=" + temp_id + "]") temp_span.html(list[i]['click']); } } } }) } function CheckLogin() { //alert(11) now_uid = ''; var ElecfansApi_checklogin = '/webapi/passport/checklogin'; var logout_url = "/d/login/logout.html"; var logout_url = 'https://bbs.elecfans.com/member.php?mod=logging&action=logout&refer=front'; $.get(ElecfansApi_checklogin, function (data, textStatus) { if (data != "") { EchoLoginInfo(data); CheckEmailInfo(data); data = $.parseJSON(data); now_uid = data.uid; /*var login_content = '<a href="/d/article/write/" class="btn write-article"><i class="icon-new-message"></i> 寫文章</a><div id="r9wq1fv" class="mine" id="mine"><a class="item user" href="/d/user/'+now_uid+'/"><img src="'+data.avatar+'" width="33" height="33" /> <strong>'+data.username+'</strong></a><div class="qtit56i" id="mymenu" class="my-menu"><a class="logout" href="'+logout_url+'" ><i class="icon-switch"></i> 退出</a></div></div>';*/ var login_content = '<a href="javascript:;" class="btn write-article" id="write_btn"><i class="icon-new-message"></i> 寫文章</a><div id="4ig61gi" class="mine" id="mine"><a class="item user" href="/d/user/' + now_uid + '/"><img src="' + data.avatar + '" width="33" height="33" /> <strong>' + data .username + '</strong></a><div class="jetphdn" id="mymenu" class="my-menu"><a class="setting" target="_blank" ><i class="icon-cog"></i> 設(shè)置</a><a class="logout" href="' + logout_url + '" ><i class="icon-switch"></i> 退出</a></div></div>'; $('#login_area').html(login_content); var win_width = $(window).width(); if (win_width > 1000) { $("#mine").mouseDelay(200).hover(function () { $("#mymenu").show(); }, function () { $("#mymenu").hide(); }); }; $('.newheader2021_tip_msg .tip_msg_num').text(data.msgnum).css({ 'display': 'inline' }); $('.no_login_2021').hide(); $('.yes_login_2021_more').css({ 'display': 'flex' }); $('.yes_login_2021').attr('href', 'https://bbs.elecfans.com/user/' + data.uid); $('.yes_login_2021 .vtm').attr('src', data.avatar); var yesLoginMoreBox = $('.yes_login_2021_more_box'); yesLoginMoreBox.find('.header_logo_2021').attr('href', 'https://bbs.elecfans.com/user/' + data .uid); yesLoginMoreBox.find('.header_logo_2021 img').attr('src', data.avatar); yesLoginMoreBox.find('.header_logo_right_2021').attr('href', 'https://bbs.elecfans.com/user/' + data.uid); yesLoginMoreBox.find('.usename_href_2021').attr('href', 'https://bbs.elecfans.com/user/' + data .uid).text(data.username); $(".header_bottom_2021 .favorite_articles_2021").attr("href", "https://bbs.elecfans.com/user/" + data.uid + "/favorite_articles?from=daohang"); $(".header_bottom_2021 .spacecp_2021").attr("href", "https://bbs.elecfans.com/home.php?mod=space&uid=" + data.uid + "&do=profile&from=daohang"); if (data.vip == 1) { yesLoginMoreBox.find('.header_VIP_2021').hide(); yesLoginMoreBox.find('.vip_icon img').attr('src', 'https://skin.elecfans.com/images/2021-soft/vip_icon2.png'); }; } else { remainLog(); var content = '<a class="item special-login " href="javascript:;" title="">登錄</a><a class="item" target="_blank">注冊(cè)</a>'; $('#login_area').html(content); //.send-write,.absolute-write $(".special-login").click(function (e) { $.tActivityLogin(); return false; }); $('.no_login_2021').click(function () { $.ssoDialogLogin(); }) } }); } function getCookie(name) { var arr, reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)"); if (arr = document.cookie.match(reg)) return unescape(arr[2]); else return null; } //添加提示注冊(cè)引導(dǎo) function remainLog() { if ($("#remainLogBox").length > 0) { return false; } var getRemainShow = getCookie('REMAINSHOWLOG'); /*設(shè)置注冊(cè)框的主題內(nèi)容*/ var content = '<div class="8cqohom" id="remainLogBox">' + '<div id="bvce5et" class="sso_layer"></div>' + '<div id="rxwpegm" class="remain-log clearfix">' + '<div id="sntvtjl" class="fl LogBgPart">' + '<h3>電子發(fā)燒友</h3> ' + '<p>中國(guó)電子工程師最喜歡的網(wǎng)站</p> ' + '<ul>' + '<li>與<span id="downNum">2931785</span>位工程師會(huì)員交流學(xué)習(xí)</li>' + '<li>獲取您個(gè)性化的科技前沿技術(shù)信息</li> ' + '<li>參加活動(dòng)獲取豐厚的禮品</li> ' + '</ul>' + '</div>' + '<div id="xic4stz" class="fr LogRightPart">' + '<div class="edbusl9" id="colseRemainLog"><img src="https://skin.elecfans.com/images/remain_log_colse.png"></div>' + '<div class="ypa1mk1" id="ssoScrollLog"></div>' + '</div>' + '</div>' + '</div>'; $("body").append(content); $("#colseRemainLog").click(function () { var Days = 1; var exp = new Date(); exp.setTime(exp.getTime() + Days * 24 * 60 * 60 * 1000); /*存儲(chǔ)cookie 用于點(diǎn)擊關(guān)閉后一天不顯示*/ document.cookie = 'REMAINSHOWLOG' + "=" + '1' + ";path= " + "/" + ";expires=" + exp.toGMTString(); $("#remainLogBox").remove(); $("html").css('overflow-y', 'auto'); }); setTimeout(function () { var netHost = window.location.host.split("."); $.ajax({ url: 'https://www.elecfans.' + netHost[2] + '/webapi/passport/totalaccount', dataType: 'json', success: function (data) { if (data.status == "successed") { $("#downNum").html(data.data.num); } } }) }, 1000); var getPathHref = location.pathname; /*判斷是否是首頁(yè)*/ if (getPathHref.length > 1 && getPathHref != "/index.html" && ($(".side-box.author-article").length > 0 || $( ".article .article-content").length > 0)) { var getLoadPageNum = getCookie('LoadPageNum'); if (getLoadPageNum) { var LoadPageUrl = getCookie('LoadPageUrl'); if (LoadPageUrl != location.pathname) { $(window).scroll(function () { /*滾動(dòng)一屏頁(yè)面后顯示*/ if ($(window).scrollTop() > ($(window).height() / 2)) { if (getRemainShow != 1) { if ($("#remainLogBox").length > 0) { $("#remainLogBox").show(); $("html").css('overflow-y', 'hidden'); } } } }) } } else { var Days = 1; var exp = new Date(); exp.setTime(exp.getTime() + Days * 24 * 60 * 60 * 1000); /*存儲(chǔ)cookie 用于點(diǎn)擊關(guān)閉后一天不顯示*/ document.cookie = 'LoadPageNum' + "=" + '1' + ";path= " + "/" + ";expires=" + exp.toGMTString(); var LoadPageUrl = getCookie('LoadPageUrl'); if (!LoadPageUrl) { document.cookie = 'LoadPageUrl' + "=" + location.pathname + ";path= " + "/" + ";expires=" + exp .toGMTString(); } } } } $(function () { var follow_wrap = $(".author-collect"); var now_uid = ""; var face_src = ""; var getFollowNum = $(".followNum strong").html(); //關(guān)注 $(window).on('click', '.author-collect', function () { if (now_uid == '') { $.tActivityLogin(); return false; } if($(".store_flag").val() == 15){ //企業(yè)號(hào)文章 if($(".evip_id").length == 0){return false} if ($(this).attr('id') == 'follow') { $.post('/webapi/home/evipArticle/followEvip', { evip_id : $(".evip_id").val(), action:'follow' }, function (data) { //返回的數(shù)據(jù)格式: if (data.code == "0") { follow_wrap.html('已關(guān)注').attr('id', 'cancelFollow').addClass( 'is-active'); }else{ alert(data.msg); } }); }else{ $.post('/webapi/home/evipArticle/followEvip',{ evip_id : $(".evip_id").val(), action:'cancel' }, function (data) { //返回的數(shù)據(jù)格式: if (data.code == "0") { follow_wrap.html('關(guān)注').attr('id', 'follow').removeClass( "is-active"); }else{ alert(data.msg); } }); } }else{ if ($(this).attr('id') == 'follow') { $.post('/d/user/follow', { tuid: article_user_id }, function (data) { //返回的數(shù)據(jù)格式: if (data.status == "successed") { $(".followNum strong").html(++getFollowNum); // follow_wrap.html('已關(guān)注').attr('id','cancelFollow').css('background','#999'); follow_wrap.html('已關(guān)注').attr('id', 'cancelFollow').addClass( 'is-active'); var follow_user = '<a href="/d/user/' + now_uid + '/" data-uid="' + now_uid + '" class="face" rel="nofollow"><img src="' + face_src + '"></a>'; $('#follow_list').append(follow_user); } if (data.status == "failed") { alert(data.msg); } }); }else{ $.post('/d/user/cancelFollow',{tuid: article_user_id }, function (data) { //返回的數(shù)據(jù)格式: if (data.status == "successed") { // follow_wrap.html('關(guān)注').attr('id', 'follow').css('background', '#f90'); follow_wrap.html('關(guān)注').attr('id', 'follow').removeClass( "is-active"); $(".followNum strong").html(--getFollowNum); $('#follow_list .face').each(function () { var target_uid = $(this).attr('data-uid'); if (target_uid == now_uid) { $(this).remove(); } }) } if (data.status == "failed") { alert(data.msg); } }); } } }); }); // 綁定手機(jī)號(hào) $(".send-write").click(function () { $.ajax({ url: '/webapi/passport/checklogin', type: "get", dataType: 'json', success: function (login) { if (login == null) { $.ssoDialogLogin(); } else { isVerification(function () { window.open("/d/article/write/") }) } } }) }); /* * ********: 驗(yàn)證手機(jī)號(hào) * callback: 驗(yàn)證成功的回調(diào)函數(shù) */ // isVerification(function(){ // //完成手機(jī)號(hào)驗(yàn)證 后判斷是否完善資料 // isPerfectInfo($,document,function(){},false,true) // }) function isVerification_d(callback, article_write) { var passport = null; var bbs_host = null; if (location.host.indexOf(".com") > 0) { passport = window.location.protocol + "http://passport.elecfans.com"; www_host = window.location.protocol + "http://srfitnesspt.com"; } else { passport = window.location.protocol + "http://passport.elecfans.net"; www_host = window.location.protocol + "http://www.elecfans.net"; } $.ajax({ url: www_host + '/webapi/passport/checklogin', type: "get", dataType: 'json', success: function (login) { if (login) { $.ajax({ url: www_host + '/webapi/Mcenter/sms/getvalidstatus', type: "post", dataType: 'json', success: function (res) { var phoneTxt = "<p style='text-indent: 20px;margin-bottom: 10px;'>您好!為確保您賬戶的安全及正常使用,依《網(wǎng)絡(luò)安全法》相關(guān)要求,4月22日起賬戶需綁定手機(jī),如您還未綁定,請(qǐng)盡快完成,感謝您的理解及支持!</p>" var setHtml = function () { var _iframe = null; if (article_write === "article_write") { _iframe = '<div id="hkz5wms" class="pop_verification_mask"><div id="yetvf00" class="pop_verification phone_verification">' + '<h6>請(qǐng)驗(yàn)證手機(jī)<i class="close_icon_d close_verification">╳</i></h6>' + '<div id="o0mt1ig" class="desc_txt">尊敬的用戶:<br>' + phoneTxt + '</div>' + '<iframe class="phone_iframe" width="520" height="580" src="' + passport + '/Security/validatePhone/siteid/14.html"></iframe>' + '</div></div>' $('body').append(_iframe).ready(function () { $(".close_verification:eq(0)").click( function (e) { e.stopPropagation(); $.ajax({ url: www_host + '/webapi/Mcenter/sms/getvalidstatus', type: "post", dataType: 'json', success: function ( res) { if (res.data .phonestatus == 0) { layer .msg( "請(qǐng)先驗(yàn)證手機(jī)號(hào)" ) } else { $(".pop_verification_mask") .remove() } } }) }) }) } else { _iframe = '<div id="y4acrgi" class="pop_verification_mask"><div id="shwpvcw" class="pop_verification phone_verification">' + '<h6>請(qǐng)驗(yàn)證手機(jī)<i class="close_icon_d close_verification">╳</i></h6>' + '<div id="hatzopm" class="desc_txt">尊敬的用戶:<br>' + phoneTxt + '</div>' + '<iframe class="phone_iframe" id="verificationIframe" width="488" height="580" src="' + passport + '/Security/validatePhone/siteid/14.html"></iframe>' + '</div></div>' $('body').append(_iframe).ready(function () { $(".close_verification:eq(0)").click( function (e) { e.stopPropagation(); $(".pop_verification").remove() if ($(".pop_verification_mask") .length >= 1) { $(".pop_verification_mask") .remove() } }); }) } } //已經(jīng)驗(yàn)證手機(jī)號(hào) if (res.data.phonestatus == 1) { if (typeof callback === "function") { callback() } } else { setHtml(); //沒(méi)有完成驗(yàn)證先彈出手機(jī)驗(yàn)證 // 接受數(shù)據(jù) // $.receiveMessage(function(msg){ // // 接收到純數(shù)字時(shí)設(shè)置iframe的高度 // if($.isNumeric(msg.data)){ // }else if(typeof(msg.data)=="string"){ // } // }, passport); } } }) } else { //調(diào)用登錄 $.ssoDialogLogin(); //單點(diǎn)登錄 return false; //彈出登錄 } } }) } $('body').css({ 'background-color': '#fff' }); $('.newheader2021').css({ 'border-bottom': 'solid 1px #e5e5e5' }); </script> <script src="https://staticd.elecfans.com/js/common.js?20230818"></script> <script src="https://staticd.elecfans.com/plugins/layer/layer.js"></script> <script src="https://skin.elecfans.com/js/elecfans/road_ad.js?20230818" defer></script> <script src="https://skin.elecfans.com/js/elecfans/organizing/js/organizing.js?20230710"></script> <script src="https://skin.elecfans.com/js/elecfans/interview.js?20230724"></script> <script type="text/javascript" src="https://staticd.elecfans.com/plugins/layer/layer.js"></script> <script type="text/javascript" src="/static/vendor/clipboard.min.js"></script> <script type="text/javascript" src="https://staticd.elecfans.com/js/share-web.js?20220223"></script> <script> var myface = "https://bbs.elecfans.com/uc_server/data/avatar/000/00/00/00_avatar_small.jpg"; var myname = ""; var article_title = 'python爬蟲(chóng)框架Scrapy實(shí)戰(zhàn)案例!'; var article_id = 828560; var article_user_id = 2737481;//文章作者ID var article_user_name = '馬哥Linux運(yùn)維'; var rightHeightChange = false; //專欄用戶數(shù)據(jù)獲取 var zlMp = $('input[name="zl_mp"]').val(); //是專欄用戶 if (zlMp) { $.ajax({ url:"/d/Column/getUserCount", type:'get', data:{uid:article_user_id}, success:function(res){ if(res.code === 0){ //修改數(shù)量 $('.column-article-count').text(res.data.article); $('.column-view-count').text(res.data.view); $('.column-follow-count').text(res.data.follow_count); $('.column-praise-count').text(res.data.all_click); } else { console.log(res); } } }) } if(article_id) { dIsOriginal() } //原創(chuàng)標(biāo)識(shí)接口 function dIsOriginal() { $.ajax({ url:"/webapi/arcinfo/isOriginal", type:'get', data:{aid:article_id}, success:function(re){ var res=JSON.parse(re) if(res.status==="successed"){ //1原創(chuàng)標(biāo)識(shí) if(res.data.is_original==1){ $(".yuanchuan_images").show() }else{ $(".yuanchuan_images").remove() } }else{ $(".yuanchuan_images").remove() } } }); } $('#delete_art').click(function(){ var art_id = $(this).attr('data-id'); var url = '/d/article/delete'; var data = "id="+art_id; layer.confirm('確定要?jiǎng)h除?', { btn: ['取消','確定'] //按鈕 }, function(){ layer.msg('已經(jīng)取消', {icon: 1}); }, function(){ $.ajax({ url:url, type:'post', data:data, success:function(re){ if(re.error_code==200){ var uid = re.uid; var lurl = '/d/user/'+uid+'/'; layer.msg('已經(jīng)刪除', {icon: 1}); window.location.href = lurl; }else{ layer.msg(re.msg,{icon:1}); } } }) }); }); </script> <script src="https://staticd.elecfans.com/js/xgPlayer.js"></script> <script src="https://staticd.elecfans.com/js/article.js?v=20240328"></script> <script src="https://staticd.elecfans.com/js/column_article.js?v=c202307271023"></script> <script> $(document).ready(()=>{ /**推薦文章 */ $.ajax({ url: "/d/article/getArcList", type: "get", data: { type: "recommend", page: 1, size: 5 }, success: function (res) { if (res.code == 0) { renderArticle(res.data); rightHeightChange = true } else { $(".dzs-article-recom").hide(); } }, }); /**推薦企業(yè)號(hào) */ if($(".store_flag").val() == 15){ $.ajax({ url: "/webapi/home/evip/getRecommendFollow", type: "get", success: function (res) { if(res.code == 0 && Array.isArray(res.data)){ var qyStr = '' for(var r = 0;r<res.data.length;r++){ var qyItem =res.data[r]; var jumpUrl = window.location.origin + '/d/c' + qyItem.apply_uid; var itemIcon = ''; var tagsArr = (qyItem.belong_to_industry || []).split(",") tagsArr = tagsArr.splice(0,3) var is_follow = qyItem.is_follow == 1?'focus':'unFocus' if(qyItem.ver_id == 1 || qyItem.ver_id == 2){ itemIcon= '/static/main/img/qyh/pro_vip_sm.png' }else if(qyItem.ver_id == 3){ itemIcon= '/static/main/img/qyh/enjoy_vip_sm.png' } else { itemIcon= '/static/main/img/qyh/common_vip_sm.png' } qyStr +='<li><a href="'+jumpUrl+'" target="_blank" class="block" >'; qyStr += '<div id="rgc5omf" class="enterInfo">' qyStr += '<div id="j1mntmt" class="enterImg">' qyStr += '<img src="'+qyItem.enterprise_head_url+'" class="companyImg objectFit"/>' qyStr += '</div>' qyStr += '<div id="b55eoda" class="enterDes">' qyStr += '<div id="sxmodsc" class="name">' qyStr +='<img src="'+itemIcon+'" alt="">' qyStr +='<h5>'+qyItem.enterprise_name +'</h5>' qyStr +='</div>' qyStr +='<div id="55iyr5s" class="companyName">'+qyItem.company_name +'</div>' qyStr += '<div id="b6oh0cm" class="tags">' for(var t = 0;t<tagsArr.length;t++){ qyStr += '<span>'+tagsArr[t]+'</span>' } qyStr += '</div>' qyStr += '</div>' qyStr += '</div>' qyStr += '<div id="abynywh" class="industry">' qyStr += '<div id="zvkv5ov" class="view">' qyStr += '<span>'+qyItem.archives_count+'內(nèi)容</span>' qyStr += '<span>'+ qyItem.view_count +'瀏覽量</span>' qyStr += '<span>'+qyItem.follow_count +'粉絲</span>' qyStr += '</div>' if(qyItem.is_follow == 1){ qyStr += '<span id="vx0hif1" class="qyhFocus focus" data-qyId="'+qyItem.id +'"></span>' }else{ qyStr += '<span id="s5ahap0" class="qyhFocus unFocus" data-qyId="'+qyItem.id +'">+關(guān)注</span>' } qyStr += '</div>' qyStr += '</a>' qyStr += '</li>' } $(".enterWrap-qyh").append(qyStr) } } }) //企業(yè)號(hào)關(guān)注和取消關(guān)注 $(".enterWrap-qyh").on("click",".qyhFocus",function(){ if($(".is-login").length>0 && $(".is-login").attr("data-uid")){ var hasFocus = $(this).hasClass("focus"); var qyId = $(this).attr("data-qyId") var that = $(this) $.post('/webapi/home/evipArticle/followEvip', { evip_id : qyId, action:hasFocus?'cancel':'follow' }, function (data) { //返回的數(shù)據(jù)格式: if (data.code == "0") { if(hasFocus){ that.removeClass("focus").addClass("unFocus").text("+關(guān)注") }else{ that.removeClass("unFocus").addClass("focus").text("") } }else{ alert(data.msg); } }); }else{ $.ssoDialogLogin(); } return false }) }else{ /**推薦專欄 */ $.ajax({ url: "/d/article/getZlList", type: "get", data: { type: "recommend", page: 1, size: 5 }, success: function (res) { if (res.code == 0) { renderColumn(res.data,""); rightHeightChange = true } else { $(".dzs-article-column").hide(); } }, }); } }) </script> <script src="https://staticd.elecfans.com/js/artilePartjs.js?20230906"></script> <footer> <div class="friendship-link"> <p>感谢您访问我们的网站,您可能还对以下资源感兴趣:</p> <a href="http://srfitnesspt.com/" title="色视频在线">色视频在线</a> <div class="friend-links"> </div> </div> </footer> <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body><div id="yhhst" class="pl_css_ganrao" style="display: none;"><option id="yhhst"></option><address id="yhhst"><strong id="yhhst"><tt id="yhhst"></tt></strong></address><tr id="yhhst"><td id="yhhst"></td></tr><label id="yhhst"></label><thead id="yhhst"></thead><code id="yhhst"><pre id="yhhst"><legend id="yhhst"><li id="yhhst"></li></legend></pre></code><acronym id="yhhst"><acronym id="yhhst"></acronym></acronym><tbody id="yhhst"></tbody><track id="yhhst"></track><strong id="yhhst"></strong><ol id="yhhst"></ol><dl id="yhhst"><small id="yhhst"><pre id="yhhst"><u id="yhhst"></u></pre></small></dl><strong id="yhhst"></strong><thead id="yhhst"></thead><abbr id="yhhst"><strike id="yhhst"><th id="yhhst"><span id="yhhst"></span></th></strike></abbr><ruby id="yhhst"><s id="yhhst"><option id="yhhst"><source id="yhhst"></source></option></s></ruby><rt id="yhhst"><tr id="yhhst"><dd id="yhhst"><tbody id="yhhst"></tbody></dd></tr></rt><center id="yhhst"></center><label id="yhhst"></label><ruby id="yhhst"><center id="yhhst"><noscript id="yhhst"><mark id="yhhst"></mark></noscript></center></ruby><samp id="yhhst"><code id="yhhst"></code></samp><optgroup id="yhhst"><em id="yhhst"><s id="yhhst"><ul id="yhhst"></ul></s></em></optgroup><kbd id="yhhst"></kbd><var id="yhhst"></var><pre id="yhhst"><s id="yhhst"><b id="yhhst"><source id="yhhst"></source></b></s></pre><center id="yhhst"></center><pre id="yhhst"></pre><sub id="yhhst"><style id="yhhst"><b id="yhhst"></b></style></sub><source id="yhhst"></source><progress id="yhhst"><strong id="yhhst"></strong></progress><strong id="yhhst"><tfoot id="yhhst"><i id="yhhst"></i></tfoot></strong><span id="yhhst"></span><menuitem id="yhhst"><fieldset id="yhhst"><rp id="yhhst"><th id="yhhst"></th></rp></fieldset></menuitem><ul id="yhhst"></ul><em id="yhhst"><wbr id="yhhst"></wbr></em><optgroup id="yhhst"></optgroup><option id="yhhst"><source id="yhhst"><form id="yhhst"><legend id="yhhst"></legend></form></source></option><table id="yhhst"><dd id="yhhst"><nav id="yhhst"><tt id="yhhst"></tt></nav></dd></table><output id="yhhst"></output><dl id="yhhst"><small id="yhhst"><wbr id="yhhst"><abbr id="yhhst"></abbr></wbr></small></dl><sup id="yhhst"><tt id="yhhst"><rt id="yhhst"></rt></tt></sup><tr id="yhhst"><label id="yhhst"><pre id="yhhst"><s id="yhhst"></s></pre></label></tr><dd id="yhhst"></dd><strong id="yhhst"></strong><s id="yhhst"><ul id="yhhst"></ul></s><pre id="yhhst"><pre id="yhhst"><abbr id="yhhst"><sub id="yhhst"></sub></abbr></pre></pre><pre id="yhhst"></pre><optgroup id="yhhst"><em id="yhhst"><style id="yhhst"><ul id="yhhst"></ul></style></em></optgroup><thead id="yhhst"></thead><small id="yhhst"></small></div> </html>