Socket網路程式設計 網路爬蟲 4

2021-09-06 17:32:53 字數 3191 閱讀 8812

上一小節我們已經實現了獲取最近部落格的200頁裡面的使用者名稱,並儲存在乙個map中。一開始是想通過這個使用者名稱然後構造乙個部落格位址。然後在這個位址中查詢心得使用者名稱,但是後來發現這個的效率不是很高,雖然部分部落格會引用別人的部落格,也有機率會留有原部落格的位址,這樣我們可以爬取的到新的使用者名稱。效率是不高。最後我發現的關注和粉絲這個功能用於查詢心得使用者名稱很管用。只要該使用者在活躍過一段時間就或多或少會有粉絲或關注過某人。(不是有個說法:通過7個人能認識世界上任意乙個人)所以這種做法應該是可行的。下面送上一張一開始就畫好的框架。有些可能最後的實現跟圖中不是很相同。

理論上這樣是可以獲取得到,但是在實踐的時候才知道,原來沒有登入的使用者是訪問不了別人的粉絲和關注,沒想到這個美好的想法就這樣沒了。這可怎麼辦呢?(如果有知道的還請告訴我呀。)

由於種種原因,最後是實現不了這種迴圈爬取的效果了。都怪寫之前沒有好好試驗一下,也可能是可以完成,只是自己太弱的原因了。只能提供幾個可以獲取的使用者名稱的位址。因為達不到那種迭代的效果我就不寫。真是太不好意思了。( ~  ~ 

1 #include 2 #include 3 #include 

4 #include 5 #include 6 #include 7 #include 8 #include in.h>

9 #include 10 #include //

正規表示式

第乙個是使用者名稱,第二個儲存被加入的次數

41 queuequrl;

42 queueqstr;

4344

//- 200

//45

//初始化使用者名稱

46for(int i=1;i<=200;++i)

4763

//一開始以為是只要建立一次socket然後每次都可以進行send&recv的。但是後來測試好像不行,每次都要進行一次socket的建立

64while(1)65

76while(!qurl.empty())

7791}92

return0;

93}9495

96//

第乙個引數是要匹配的字串,第二個引數是匹配的規則

*****===2023年9月2日更新**********=

今天找到乙個解決的辦法了。原來是使用cookie來解決,就是在乙個請求頭header中增加乙個cookie端,具體的實現思路可以參考這篇部落格:  在這裡先記錄下來,下次如果要實現就可以參照這個思路了。

socket網路程式設計

首先認識乙個表示主機資訊的結構體 struct hostent h addrtype 這是表示主機所使用的位址型別的定義,在c語言winsock2.h標頭檔案中以 af 開頭的巨集定義就是它的值。如果使用的是ipv4,則值為 af inet 如果是ipv6,值為 af inet4 h length ...

Socket網路程式設計

socket 網路程式設計 在c free中建立乙個對話方塊工程,取名socket1,建立如下檔案結構 main.h ifndef main h define main h include bool winapi main proc hwnd hwnd,uint umsg,wparam wparam...

Socket網路程式設計

類似於 呼叫過程 打 雙方 a,b 相當於2個互相通訊的應用程式,機相當於申請的socket,號碼就是ip位址,雙方通話過程相當於先通過ip連線,然後a向b的socket傳送資料和b從a的socket接收資料,通話結束後,一方結束通話相當於關閉socket,撤銷鏈結。2.socket型別 流式soc...