今天解决了程序卡住不动的问题:
通过设置urllib2.urlopen(url,None,time_out)中time_out的值,来排除连接超时的错误。
time_out = X
try:
data ={'':''} #data为递交表单
req = urllib2.Request(url,data)
res = urllib2.urlopen(req,None,time_out)
except:
print 'connect again!'
main()
并且深入学习了 BeautifulSoup这个模块的使用,解决了乱码,学会了筛选多重标签提取元素的方法。
如果想要查找属性值未知的标签,
比如这样<tag attr ="XXX">
可以这样写,用True来代替所有未知或者变化的属性值
soup.find(name = "tag",attrs={"attr":True})
并且,在beautifulsoup里也可以嵌入正则表达式:
比如遇到这样的标签:
<div class ="icon">
<h1 class = "h11ello">hello world 123</h1>
<h1 class = "h12ello">hello world 456</h1>
<h1 class = "h13ello">hello world 789</h1>
</div>
我们就可以:
list = soup.findAll(name = "h1" ,
attrs = {"class":re.compile(r"h(\d+)ello")})
这样就可以获得到:
hello world 123
hello world 456
hello world 789