(更新代码就在下面)
我有一个类:UrlData
,它生成一个url列表:
for url in urls:
rawMechSiteInfo = mech.open(url) #mechanize browse each url
mech_response = mech.response()
headers = mech_response.info()
print "headers ", headers.getheader('Content-Type').encode('utf-8')
return
此行:print "headers ", headers.getheader('Content-Type').encode('utf-8')
不输出任何内容
如果我在我的view
中做一个print url_data.url_list()
,它的抛出:
我只是试图解析html
标记的src,如下所示:
<div class="s">
<div>
<div class="f kv" style="white-space:nowrap">
<cite class="vurls">www.somewebsite.com/</cite>
</div>
</div>
</div>
以下在分析整个文档时起作用:
HarvestLinks = 'h3',attrs={'class': 'r'}
或者
HarvestLinks = BSObjOfUrl.find('cite','vurls')
它似乎工作得很好,但最后一个只返回一个结果,并且存在多个结果。在
感谢那些到目前为止一直在努力帮助的人,还有什么进一步的想法吗?在
我以前从未使用过
mechanize
,我一直在使用urllib2和beautifulsoup4。 我多次遇到编码和解码问题。也许我的一些经验会有所帮助。在当您从页面
elem.text
读取文本时,默认值始终是unicode。有时人们会有好运直接在屏幕上打印unicode,一切都很好。有时,控制台无法正确显示unicode。它表示两件事:您已经在中准备好了数据,唯一的问题是您希望在IDE中看到它(Eclipse、Pycharm等等),它将无法工作。您可以不做任何事情就将unicode写入数据库或文件,有时当您看到IDE外部的数据时,它会正确显示。
如果您想在编写代码时先看到文本(谁不想呢?)你可以
print elem.text.encode('utf-8')
,我一直很幸运。检查headers变量的输出并返回报告,您似乎仍然有错误的编码:
看看文档,attrs是一个设计糟糕的参数,应该更像是一个**kwargs。在
http://www.crummy.com/software/BeautifulSoup/bs4/doc/#searching-by-css-class表示实际要传递类\kwarg:
相关问题 更多 >
编程相关推荐