HttpWebRequest抓取網頁內容與直接輸入URL得到的內容不一致!球大神幫忙!!


一、前言

我在做一個百度收錄情況查詢的軟件,就是通過軟件來批量查詢文章鏈接是否被百度收錄,主要是用來查詢某個網址的收錄次數還有網站的排行數,思路是借鑒別人的。

二、問題描述

首先需要考慮的是能夠支持哪些搜索引擎的查詢,首先是百度,然后是必應、搜狗、搜搜、360。本來想支持Google但是一想不對,根本不好訪問的,所以暫時不算在內。而我們實際要做的就是根據一個網址能夠檢索出這個網址的在各個搜索引擎的收錄次數以及在不同關鍵詞下的網址排行,這里出入的只有網址還有若干的關鍵詞,而輸出則是該網址在不同搜索引擎下的收錄次數以及在各個關鍵詞下的排行數。

但是這里有個問題,就是排行數,如果檢索的網址在前100還好,如果排名很后面,那么問題就來了,那樣會讓用戶等待很長時間才能看到結果,但是用戶可能只想知道排行前100的具體排名,而那些超過的則只要顯示100以后就可以了,而這些就需要我們前期考慮好,這樣后面的程序才好做。

三、解決思路

相信很多人都能夠想到,就是利用WebClient將將需要的頁面下載下來,然后用正則從中獲取我們感興趣的部分,然后利用程序去處理。而關鍵難度就是在這個正則的編寫。

四、收錄次數

首先是網站的收錄次數,我們可以在百度中輸入site:www.cnblogs.com/然后我們就可以看到如下的頁面:

而我們所需要的收錄次數就是 5,280,000 這段數字,我們接着查看頁面元素:

接着我們再觀察其他的搜索引擎可以發現都是類似的,所以我們的思路這個時候應該就得出了,最后就是如何組織網址,這部分我們看地址欄?wd=site%3Awww.cnblogs.com%2F這段就知道怎么寫了。

稍等這個時候我們可能心急一個一個實現,這樣后面我們就沒法集中的調用,同時也會影響以后的新增,所以我們要規定一個要實現收錄數功能的抽象類,這樣就能夠在不知曉具體實現的情況統一使用,並且還能夠在以后輕松的新增新的搜索引擎,而這種方式屬於策略模式(Stategry),下面我們來慢慢分析出這個抽象類的具體內容。

首先每個實現這個抽象類的具體類都應該是對應某個搜索引擎,那么就需要有一個基本網址,同時還要留下占位符,比如根據上面百度的這個我們就得出這樣一個字符串

http://www.baidu.com/s?wd=site%3A{0}

問題:我在做一個百度收錄情況查詢的軟件,就是通過軟件來批量查詢文章鏈接是否被百度收錄,問題如題,直接上圖: 這個是要抓取的網頁的地址,直接在瀏覽器輸入結果是:
但是HttpWebRequest獲取到的卻是 :
 
完全不知道什么情況?
求解。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM