Re: [問題] 關於網頁抓取內容

看板Python作者 (chang)時間11年前 (2014/09/13 17:11), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串4/4 (看更多)
※ 引述《jenocool ()》之銘言: 咬光光 : 不知道要用什麼方法將他們合併? : 另外想請問一下,抓取GOOGLE搜尋結果似乎會有問題 : 上網查了一下似乎是有防止抓取 : 不知道有沒有什麼方法可以解決? : 看了一整天還是一頭霧水 .. : 謝謝大家了 import urllib, urllib2 import sys from lxml.html import fromstring reload(sys) sys.setdefaultencoding('utf-8') class http_code: def __init__(self): self.url = '' def get_html(self): headers = {'User-Agent':'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6'} req = urllib2.Request(self.url, headers = headers) soup = urllib2.urlopen(req).read() page = fromstring(soup) return page if __name__ == '__main__': keyword = u'潮肉' yahoo = http_code() yahoo.url ='https://search.yahoo.com/search;_ylt=A0SO8zWDzhNUscYAlQil87UF;_ylc=X1MDOTU4MTA0NjkEX3IDMgRmcgMEZ3ByaWQDUDZjYmxIRHRRNHlPS3Q3dWFubWt6QQRuX3JzbHQDMARuX3N1Z2cDOQRvcmlnaW4Dc2VhcmNoLnlhaG9vLmNvbQRwb3MDMARwcXN0cgMEcHFzdHJsAwRxc3RybAMyBHF1ZXJ5AJBHRfc3RtcAMxNDEwNTg0MTMw?p=%s&fr=sfp&fr2=sb-top-search&iscqry=' % keyword content = yahoo.get_html() for elem in content.iter(): if elem.text: print elem.text 剛好最近也在研究如何抓取網頁訊息,我找到方式是利用fromstring的方法將所有標籤內容、值都取出 你可以用elem.tag (這很淺顯易懂XD) elem.attirb(這是取標籤內的值,屬於dictionary) elem.text(這是取得被標籤包覆的內容) 你有提到google沒辦法抓取,那是因為google不認瀏覽器以外的header(目前測試的情況是這樣) 在request加上header,google search就可以直接取內容了 ( url = 'https://www.google.com.tw/search?q=%s' % keyword ) 當然還有很多方法可以玩,就看怎麼玩XD -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 218.173.24.105 ※ 文章網址: http://www.ptt.cc/bbs/Python/M.1410628291.A.6F2.html
文章代碼(AID): #1K57h3Ro (Python)
文章代碼(AID): #1K57h3Ro (Python)