① 如何分析網站網頁爬蟲爬取規則

既然確定了用爬蟲來自動整理文章,你得先理解爬蟲是什麼。爬蟲說白了就是一個腳本程序。說到腳本,我們平時遇到一些費時費力又容易出錯的活兒,都可以把用到的命令寫到腳本里,讓計算機自動來執行。測試同學說的自動化腳本,運維同學說的環境配置腳本,都是這個意思。一個腳本包含了很多命令,一個接一個,告訴計算機第一步干什麼,之後干什麼,最後干什麼。

在這里,我們的目標很明確,就是寫一個爬蟲腳本,讓計算機一步一步的把「給產品經理講技術」的所有歷史文章,保存成pdf。

歷史文章哪裡去找?正好,微信公眾號的關注界面有一個查看歷史消息的鏈接。

點開歷史消息,這個頁面每次顯示10篇文章,如果用戶滑到底,就會再載入10篇出來,典型的非同步載入。我們要找的,就是每篇文章的URL地址。只要找到所有文章的URL,就能下載到每篇文章的內容和圖片,然後就可以進一步加工處理成pdf了。

為此,我們長按頁面選擇在瀏覽器中打開,然後把地址欄里的URL復制出來,發送到電腦上,用Chrome打開。用Chrome的最大好處,就是它有一個「開發人員工具」,可以直接查看網頁的源碼。按下command+option+L,打開開發人員工具,就能看到這個網頁的源碼了。我們要找的東西,就藏在這些亂七八糟的html代碼里。

如何從HTML源碼里找到我們想要的文章鏈接呢?

這要從HTML的結構說起。HTML全稱超文本標記語言,所謂標記,就是說是它通過很多標簽來描述一個網頁。你看到很多像以開始,以結束的標志,就是標簽。這些標簽一般成對出現,標簽裡面還可以套標簽,表示一種層級關系。最外面的html標簽是最大的,head、body次之,一層一層下來,最後才是一段文字,一個鏈接。你可以把它類比成一個人,這個人叫html,有head,有body,body上有hand,hand上面有finger。

扯遠了,一些常用的標簽:

1、<head>。一個網頁的很多重要信息,都是在這里聲明的。比如說標題,就是在<head>下的<title>里定義的。一個網頁用到的CSS樣式,可以在<head>下的<style>里定義。還有你寫的JavaScript代碼,也可以在<head>下的<script>里定義。

2、<body>。它包含的東西就多了,基本上我們能看到的東西,一段文字,一張圖片,一個鏈接,都在這裡面。比如說:

<p>表示一個段落

<h1>是一段文字的大標題

<a>表示一個鏈接

<img>表示一張圖

<form>是一個表單

<div>是一個區塊

計算機是如何理解HTML的標簽的呢?其實很簡單,它就是一棵樹。你可以把<html>當做樹根,從樹根上分出<head>和<body>,各個分支上又有新的分支,直到不能再分為止。這有點類似我們電腦上存放的文件。假設你有一本《21天學習C++》的電子書,存在D盤、study文件夾下的CS文件夾里。而study文件夾里除了CS文件夾,還有GRE、島國文化等目錄,代表著另一個分支體系。這也是一棵樹。樹上的每一片葉子,都有一條從根部可以到達的路徑,可以方便計算機去查找。

回到正題,有了這些基礎知識,我么再來看微信這個歷史消息頁面。從最外層的<html>標簽開始,一層一層展開,中間有<body>、有<div>、最後找到一個<a>標簽,標簽裡面的hrefs就是每篇文章的URL了。把這個URL復制下來,在新的TAB打開,確認確實是文章的地址。

現在我們通過分析一個網頁的結構、標簽,找到了我們想要的文章URL,我們就可以寫爬蟲去模擬這個過程了。爬蟲拿到網頁之後,我們可以用正則表達式去查找這個<a>標簽,當然,也可以用一些更高級的手段來找。

② 如何讓網頁被爬蟲抓取

網站建設好了,當然是希望網頁被搜索引擎收錄的越多越好,但有時候我們也會碰到網站不需要被搜索引擎收錄的情況。
比如,要啟用一個新的域名做鏡像網站,主要用於PPC 的推廣,這個時候就要想辦法屏蔽搜索引擎蜘蛛抓取和索引我們鏡像網站的所有網頁。因為如果鏡像網站也被搜索引擎收錄的話,很有可能會影響官網在搜索引擎的權重。
以下列舉了屏蔽主流搜索引擎爬蟲(蜘蛛)抓取/索引/收錄網頁的幾種思路。注意:是整站屏蔽,而且是盡可能的屏蔽掉所有主流搜索引擎的爬蟲(蜘蛛)。
1、通過 robots.txt 文件屏蔽
可以說 robots.txt 文件是最重要的一種渠道(能和搜索引擎建立直接對話),給出以下建議:
User-agent: Baispider
Disallow: /
User-agent: Googlebot
Disallow: /
User-agent: Googlebot-Mobile
Disallow: /
User-agent: Googlebot-Image
Disallow:/
User-agent: Mediapartners-Google
Disallow: /
User-agent: Adsbot-Google
Disallow: /
User-agent:Feedfetcher-Google
Disallow: /
User-agent: Yahoo! Slurp
Disallow: /
User-agent: Yahoo! Slurp China
Disallow: /
User-agent: Yahoo!-AdCrawler
Disallow: /
User-agent: YouBot
Disallow: /
User-agent: Sosospider
Disallow: /
User-agent: Sogou spider
Disallow: /
User-agent: Sogou web spider
Disallow: /
User-agent: MSNBot
Disallow: /
User-agent: ia_archiver
Disallow: /
User-agent: Tomato Bot
Disallow: /
User-agent: *
Disallow: /
2、通過 meta tag 屏蔽
在所有的網頁頭部文件添加,添加如下語句:
<meta name="robots" content="noindex, nofollow">
3、通過伺服器(如:Linux/nginx )配置文件設置
直接過濾 spider/robots 的IP 段。
小註:第1招和第2招只對「君子」有效,防止「小人」要用到第3招(「君子」和「小人」分別泛指指遵守與不遵守 robots.txt 協議的 spider/robots),所以網站上線之後要不斷跟蹤分析日誌,篩選出這些 badbot 的ip,然後屏蔽之。

③ 如何設置js 與html不讓網路爬蟲抓取

網路了一個方法,僅供參考。
robots.txt文件應該放置在網站根目錄下。
robots.txt文件用法舉例:
1. 允許所有的robot訪問
User-agent: * Allow: / 或者 User-agent: * Disallow:

2. 禁止所有搜索引擎訪問網站的任何部分
User-agent: *
Disallow: /

3. 僅禁止Baispider訪問您的網站

User-agent: Baispider

Disallow: /

4. 僅允許Baispider訪問您的網站
User-agent: Baispider
Disallow:

5. 禁止spider訪問特定目錄
User-agent: *
Disallow: /cgi-bin/
Disallow: /tmp/
Disallow: /~joe/

6. 允許訪問特定目錄中的部分url
User-agent: *
Allow: /cgi-bin/see
Allow: /tmp/hi
Allow: /~joe/look
Disallow: /cgi-bin/
Disallow: /tmp/
Disallow: /~joe/

7. 使用」*」限制訪問url
禁止訪問/cgi-bin/目錄下的所有以」.htm」為後綴的URL(包含子目錄)。
User-agent: *
Disallow: /cgi-bin/*.htm

8. 使用」$」限制訪問url
僅允許訪問以」.htm」為後綴的URL。
User-agent:
Allow: .htm$
Disallow: /

例9. 禁止訪問網站中所有的動態頁面
User-agent:
Disallow: /*?*

10. 禁止Baispider抓取網站上所有圖片
僅允許抓取網頁,禁止抓取任何圖片。
User-agent: Baispider
Disallow: .jpg$
Disallow: .jpeg$
Disallow: .gif$
Disallow: .png$
Disallow: .bmp$

11. 僅允許Baispider抓取網頁和.gif格式圖片
允許抓取網頁和gif格式圖片,不允許抓取其他格式圖片
User-agent: Baispider
Allow: .gif$
Disallow: .jpg$
Disallow: .jpeg$
Disallow: .png$
Disallow: .bmp$

12. 僅禁止Baispider抓取.jpg格式圖片
User-agent: Baispider
Disallow: .jpg$

python爬蟲能爬取私密網站的數據嗎

現在的大網站都是多層次解析或者設置了用戶cookies。如果你技術夠,慢慢挖,就能挖出真實的圖片來。

⑤ 如何禁止搜索引擎爬蟲抓取網站頁面

以下列舉了屏蔽主流搜索引擎爬蟲(蜘蛛)抓取/索引/收錄網頁的幾種思路。注意:是整站屏蔽,而且是盡可能的屏蔽掉所有主流搜索引擎的爬蟲(蜘蛛)。

1、通過 robots.txt 文件屏蔽
可以說 robots.txt 文件是最重要的一種渠道(能和搜索引擎建立直接對話),給出以下建議:
User-agent: Baispider
Disallow: /
User-agent: Googlebot
Disallow: /
User-agent: Googlebot-Mobile
Disallow: /
User-agent: Googlebot-Image
Disallow:/
User-agent: Mediapartners-Google
Disallow: /
User-agent: Adsbot-Google
Disallow: /
User-agent:Feedfetcher-Google
Disallow: /
User-agent: Yahoo! Slurp
Disallow: /
User-agent: Yahoo! Slurp China
Disallow: /
User-agent: Yahoo!-AdCrawler
Disallow: /
User-agent: YouBot
Disallow: /
User-agent: Sosospider
Disallow: /
User-agent: Sogou spider
Disallow: /
User-agent: Sogou web spider
Disallow: /
User-agent: MSNBot
Disallow: /
User-agent: ia_archiver
Disallow: /
User-agent: Tomato Bot
Disallow: /
User-agent: *
Disallow: /
2、通過 meta tag 屏蔽
在所有的網頁頭部文件添加,添加如下語句:
<meta name="robots" content="noindex, nofollow">
3、通過伺服器(如:Linux/nginx )配置文件設置
直接過濾 spider/robots 的IP 段。

⑥ 如何禁止搜索引擎爬蟲(Spider)抓取網站頁面

一般情況,大家都是希望搜索引擎爬蟲盡可能多的抓取自己的網站,但有時內也需要告訴爬蟲不要容抓取,比如,不要抓取鏡像頁面等。
以下列舉了屏蔽主流搜索引擎爬蟲(蜘蛛)抓取/索引/收錄網頁的幾種思路。注意:是整站屏蔽,而且是盡可能的屏蔽掉所有主流搜索引擎的爬蟲(蜘蛛)。
1、通過 robots.txt 文件屏蔽

⑦ 如何設置讓網站禁止被爬蟲收錄

1、網站建設好了,當然是希望網頁被搜索引擎收錄的越多越好,但有時候我們也會碰到網站不需要被搜索引擎收錄的情況。要啟用一個新的域名做鏡像網站,主要用於PPC 的推廣,這個時候就要想辦法屏蔽搜索引擎蜘蛛抓取和索引我們鏡像網站的所有網頁。因為如果鏡像網站也被搜索引擎收錄的話,很有可能會影響官網在搜索引擎的權重。

2、屏蔽主流搜索引擎爬蟲(蜘蛛)抓取/索引/收錄網頁的幾種思路。是整站屏蔽,而且是盡可能的屏蔽掉所有主流搜索引擎的爬蟲。

3、通過 robots.txt 文件屏蔽,可以說 robots.txt 文件是最重要的一種渠道(能和搜索引擎建立直接對話)。通過 meta tag 屏蔽,在所有的網頁頭部文件添加,添加如下語句:<meta name="robots" content="noindex, nofollow">。通過伺服器(如:Linux/nginx )配置文件設置,直接過濾 spider/robots 的IP 段。

⑧ 我想用多線程網路爬蟲抓取www.zillow.com,但是線程被阻塞了

這是類似craigslist.com的throttle機制,當你短時間內要求太多網頁,主機會拒絕你的要求。
可用多內線程curl 如 rolling curl,加上一組假user agent及容ip代理就可過關。

⑨ 網路爬蟲能把QQ加鎖空間里的東西爬出來嗎

不能 這個就好比銀行卡 你告訴別人密碼才知道