本来只有在写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搜寻结果似乎会有问题
上网查了一下似乎是有防止抓取
不知道有没有什么方法可以解决?
看了一整天还是一头雾水 ..
谢谢大家了