亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
123下一頁(yè)
最近訪問板塊 發(fā)新帖
樓主: 張翱
打印 上一主題 下一主題

[系統(tǒng)管理] 如何對(duì)同一主域的url分開抓取 [復(fù)制鏈接]

論壇徽章:
2
2015元宵節(jié)徽章
日期:2015-03-06 15:53:222015小元宵徽章
日期:2015-03-06 15:58:18
11
發(fā)表于 2015-03-05 16:10
我怎么看不明白呢,對(duì)同一主域的沒有做到分開抓取啊回復(fù) 7# 銀風(fēng)冷月


   

論壇徽章:
93
2015年辭舊歲徽章
日期:2019-10-10 10:51:15CU大牛徽章
日期:2014-02-21 14:21:56CU十二周年紀(jì)念徽章
日期:2020-10-15 16:55:55CU大牛徽章
日期:2014-02-21 14:22:07羊年新春福章
日期:2019-10-10 10:51:39CU大牛徽章
日期:2019-10-10 10:55:38季節(jié)之章:春
日期:2020-10-15 16:57:40ChinaUnix元老
日期:2019-10-10 10:54:42季節(jié)之章:冬
日期:2019-10-10 10:57:17CU大牛徽章
日期:2014-02-21 14:22:52CU大牛徽章
日期:2014-03-13 10:40:30CU大牛徽章
日期:2014-02-21 14:23:15
12 [報(bào)告]
發(fā)表于 2015-03-05 16:26 |只看該作者
回復(fù) 10# 張翱


    沒明白分開抓取的意思……是說(shuō)每次wget一個(gè)url,連續(xù)兩個(gè)url都是同一個(gè)主域的,這就算沒有“分開”抓取的是嗎?這樣的話咱排url列表的時(shí)候分開就行了唄;蛘哌是別的意思?

論壇徽章:
2
2015元宵節(jié)徽章
日期:2015-03-06 15:53:222015小元宵徽章
日期:2015-03-06 15:58:18
13 [報(bào)告]
發(fā)表于 2015-03-05 16:42 |只看該作者
我給你把題目說(shuō)下:
編寫一個(gè)抓取腳本,輸入url列表,輸出全部抓取回來(lái)的頁(yè)面的打包文件。

抓取要求:
控制被抓取服務(wù)端的壓力,對(duì)同一主域的url分開抓取。(比如w.a.com/a.html和
w.a.com/b.html不要同時(shí)抓取)
控制抓取服務(wù)器的壓力,并發(fā)度為30,即同時(shí)可以使用30個(gè)進(jìn)程來(lái)進(jìn)行抓取。

URL示例:
url.list隨便寫幾個(gè)抓取URL即可




回復(fù) 12# seesea2517


   

論壇徽章:
93
2015年辭舊歲徽章
日期:2019-10-10 10:51:15CU大;照
日期:2014-02-21 14:21:56CU十二周年紀(jì)念徽章
日期:2020-10-15 16:55:55CU大牛徽章
日期:2014-02-21 14:22:07羊年新春福章
日期:2019-10-10 10:51:39CU大;照
日期:2019-10-10 10:55:38季節(jié)之章:春
日期:2020-10-15 16:57:40ChinaUnix元老
日期:2019-10-10 10:54:42季節(jié)之章:冬
日期:2019-10-10 10:57:17CU大;照
日期:2014-02-21 14:22:52CU大牛徽章
日期:2014-03-13 10:40:30CU大;照
日期:2014-02-21 14:23:15
14 [報(bào)告]
發(fā)表于 2015-03-05 16:44 |只看該作者
回復(fù) 13# 張翱


    這個(gè)明白了。你一樓沒說(shuō)到“并發(fā)”這個(gè)事情,不然順序抓取怎么會(huì)有同時(shí)這個(gè)問題嘛。

論壇徽章:
2
2015元宵節(jié)徽章
日期:2015-03-06 15:53:222015小元宵徽章
日期:2015-03-06 15:58:18
15 [報(bào)告]
發(fā)表于 2015-03-05 16:55 |只看該作者
嗯,不知道該怎么編寫回復(fù) 14# seesea2517


   

論壇徽章:
93
2015年辭舊歲徽章
日期:2019-10-10 10:51:15CU大;照
日期:2014-02-21 14:21:56CU十二周年紀(jì)念徽章
日期:2020-10-15 16:55:55CU大牛徽章
日期:2014-02-21 14:22:07羊年新春福章
日期:2019-10-10 10:51:39CU大;照
日期:2019-10-10 10:55:38季節(jié)之章:春
日期:2020-10-15 16:57:40ChinaUnix元老
日期:2019-10-10 10:54:42季節(jié)之章:冬
日期:2019-10-10 10:57:17CU大;照
日期:2014-02-21 14:22:52CU大;照
日期:2014-03-13 10:40:30CU大牛徽章
日期:2014-02-21 14:23:15
16 [報(bào)告]
發(fā)表于 2015-03-05 17:16 |只看該作者
本帖最后由 seesea2517 于 2015-03-06 13:32 編輯

簡(jiǎn)單寫了一下,沒有測(cè)試,大體思路是循環(huán)處理每一行,并記錄主域,如果主域不在處理中則處理,否則把當(dāng)前行存到末尾,處理下一行。
  1. url_list="urls.txt"
  2. dir_saved="保存的目錄"
  3. file_packed="xxxx.tgz"

  4. THREAD_NUM_MAX=30
  5. fd=4
  6. domain_processing=()

  7. init ()
  8. {
  9.     file_name="$.fifo"
  10.     mkfifo $file_name
  11.     eval "exec $fd<>$file_name"
  12.     rm $file_name

  13.     for ((i = 0; i < $THREAD_NUM_MAX; ++i))
  14.     do
  15.         echo "xxx" >& $fd
  16.     done
  17. }

  18. spawn_sub_job ()
  19. {
  20.     wget --directory-prefix=$dir_saved $1
  21.     domain_processing[$2]=0
  22.    
  23.     echo "xxx" >& $fd
  24. }

  25. main ()
  26. {
  27.     content=`cat $url_list`
  28.     OLF_IFS=${IFS}
  29.     IFS='\n'

  30.     ((count = 0))
  31.     for line in $content
  32.     do
  33.         # 空行略過
  34.         if [ -z "$line" ]
  35.         then
  36.             continue
  37.         fi

  38.         # 略過注釋
  39.         echo "$line" | grep '^#' > /dev/null
  40.         if [ $? == 0 ]
  41.         then
  42.             continue
  43.         fi

  44.         # 檢查主域是否在處理中,是的話放到文件尾下次再處理,繼續(xù)處理下一行
  45.         domain=$(dirname $line)
  46.         if (( ${domain_processing[$domain]} > 0 ))
  47.         then
  48.             content="$content\n$line"
  49.             continue
  50.         fi

  51.         domain_processing[$domain]=1
  52.         ((count++))

  53.         # 由管道控制是否還能再產(chǎn)生子進(jìn)程,如果不行,則會(huì)在此等待
  54.         read -u$fd

  55.         # 啟動(dòng)子任務(wù)并放入后臺(tái)
  56.         echo "處理第 $count 行:$line。"
  57.         spawn_sub_job $line $domain &
  58.     done

  59.     # 恢復(fù)舊的設(shè)置
  60.     IFS=$OLD_IFS

  61.     # 等待最后一部分查詢完成
  62.     wait
  63.    
  64.     tar -czf $file_packed $dir_saved
  65. }

  66. # 執(zhí)行
  67. init;
  68. main;
復(fù)制代碼
肯定有錯(cuò)誤,請(qǐng)你修改一下了,元宵快樂,下班走人。

論壇徽章:
2
2015元宵節(jié)徽章
日期:2015-03-06 15:53:222015小元宵徽章
日期:2015-03-06 15:58:18
17 [報(bào)告]
發(fā)表于 2015-03-05 17:28 |只看該作者
真是謝謝您了,好人一生平安,元宵節(jié)快樂回復(fù) 16# seesea2517


   

論壇徽章:
28
2015年迎新春徽章
日期:2015-03-04 10:16:53午馬
日期:2015-03-20 17:11:07亥豬
日期:2015-03-20 17:11:23戌狗
日期:2015-03-20 17:11:33酉雞
日期:2015-03-20 17:11:47申猴
日期:2015-03-20 17:11:58未羊
日期:2015-03-20 17:12:10子鼠
日期:2015-03-20 17:12:23丑牛
日期:2015-03-20 17:12:40卯兔
日期:2015-03-20 17:12:51辰龍
日期:2015-03-20 17:13:00巳蛇
日期:2015-03-20 17:13:12
18 [報(bào)告]
發(fā)表于 2015-03-05 17:47 |只看該作者
學(xué)了一招,這里判斷可以用數(shù)組,而且很高效...
自己之前都是先維護(hù)一個(gè)文件,然后再開一個(gè)管道做隊(duì)列過來(lái)sed -i ,比較麻煩.
贊.

論壇徽章:
93
2015年辭舊歲徽章
日期:2019-10-10 10:51:15CU大;照
日期:2014-02-21 14:21:56CU十二周年紀(jì)念徽章
日期:2020-10-15 16:55:55CU大;照
日期:2014-02-21 14:22:07羊年新春福章
日期:2019-10-10 10:51:39CU大;照
日期:2019-10-10 10:55:38季節(jié)之章:春
日期:2020-10-15 16:57:40ChinaUnix元老
日期:2019-10-10 10:54:42季節(jié)之章:冬
日期:2019-10-10 10:57:17CU大;照
日期:2014-02-21 14:22:52CU大;照
日期:2014-03-13 10:40:30CU大牛徽章
日期:2014-02-21 14:23:15
19 [報(bào)告]
發(fā)表于 2015-03-05 19:31 |只看該作者
竟然把文字粘貼到代碼中了,哈哈。
樓主測(cè)試測(cè)試,我最怕看代碼了,錯(cuò)了幫我修正。

論壇徽章:
2
2015元宵節(jié)徽章
日期:2015-03-06 15:53:222015小元宵徽章
日期:2015-03-06 15:58:18
20 [報(bào)告]
發(fā)表于 2015-03-06 09:08 |只看該作者
OK,大大回復(fù) 19# seesea2517


   
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP