[問題] 抓資料被檔@@

看板Python作者 (hazton)時間15年前 (2009/09/26 00:27), 編輯推噓1(104)
留言5則, 3人參與, 最新討論串1/2 (看更多)
之前寫了個抓yahoo搜尋出來的東西的程式 今天心血來潮開出來看,發現才抓第一頁就被擋了@@ 以下是我的程式碼: # -*- coding: utf-8 -*- import urllib import re query = u'123' d_query = urllib.quote(query.encode('utf8')) #把query編碼 top_result = 100 #抓前top_result個result url='http://tw.knowledge.yahoo.com/search/search_result?cp=1&p='+d_query+'&tab=3&n='+str(top_result) data = urllib.urlopen(url).read() print data 之前抓google的資料的時候 好像有聽說可以在程式碼寫上什麼代理伺服器的名字就可以騙過去 或是不知道有無其他抓網頁的指令可以不在抓第一頁被檔的呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.142.78 ※ 編輯: hazton 來自: 140.116.142.78 (09/26 00:28)

09/26 00:38, , 1F
有些伺服器似乎不太喜歡python的urllib
09/26 00:38, 1F

09/26 00:38, , 2F
一般是檢查 User-Agent, Referer 這兩個 request header
09/26 00:38, 2F

09/26 00:38, , 3F
例如像google搜尋 解決的方法很簡單
09/26 00:38, 3F

09/26 00:39, , 4F
把headers裡的user-agent改掉就好了
09/26 00:39, 4F

09/26 00:51, , 5F
那像樓上說的User-Agent, Referer該怎麼改呢?
09/26 00:51, 5F
文章代碼(AID): #1AlE-AZB (Python)
討論串 (同標題文章)
文章代碼(AID): #1AlE-AZB (Python)