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

作者: jenocool   2014-09-01 21:53:39
本來只有在寫C++,但由於有抓網頁的需求
看到大家推薦Python所以就嘗試看看
但摸了一整天其實還是不太懂
先附上我的程式碼
# -*- coding: utf-8 -*-
import urllib2
from sgmllib import SGMLParser
class Title(SGMLParser):
is_a=""
name=[]
global getitem
getitem = False
def start_ol(self,attrs):
global getitem
getitem = True
def start_a(self, attrs):
global getitem
if getitem == True:
self.is_a = 1
def end_a(self):
self.is_a=""
def end_ol(self):
global getitem
getitem = False
def handle_data(self, text):
if self.is_a and text !='庫存頁面' and text !='更多此站結果':
self.name.append(text)
content =
urllib2.urlopen('https://tw.search.yahoo.com/search;_ylt=A8tUwYpDIQRU33UApv9r1gt.?fr2=time&ei=utf-8&fr=yfp&p=%E6%BD%AE%E8%82%89&btf=m').read()
List = Title()
List.feed(content)
for i in List.name:
print i.decode('utf-8')
目的是希望把每一篇搜尋結果的標題存起來
好不容易才弄到稍微想用的樣子
但發現如果標籤內有其他的標籤,似乎會自動換行?
例如原本標題:台北潮肉壽喜燒肉@*~洪小玥~*-iPeen 愛評網
而在Html中則是
台北
<b>潮肉</b>
壽喜燒肉@*~洪小玥~*-iPeen 愛評網
所以抓出來的結果就變成
台北
潮肉
壽喜燒肉@*~洪小玥~*-iPeen 愛評網
不知道要用什麼方法將他們合併?
另外想請問一下,抓取GOOGLE搜尋結果似乎會有問題
上網查了一下似乎是有防止抓取
不知道有沒有什麼方法可以解決?
看了一整天還是一頭霧水 ..
謝謝大家了
作者: IAMPF (PF)   2014-09-01 22:06:00
試試看BeautifulSoup中的get_text看看?

Links booklink

Contact Us: admin [ a t ] ucptt.com