今天解决了程序卡住不动的问题:
通过设置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