我遇到了这段代码的问题,因为它除了在" f文件"中编写输出外,还可以做任何事情。有人可以帮我这个吗?
问题在于这一行:f.write(博客+'' +权限+' \ n')
try:
response = br.open(buyer)
tree = html.fromstring(response.read())
blogs = tree.xpath('//div/ul/li[@class="sidebar-item"]/a/@href')
for blog in blogs:
if '.blogspot.com' in blog:
try:
response = br.open(blog)
except HTTPError, e:
if 'http://www.blogger.com/create-blog.g?defaultSubdomain=' in e.read():
try:
response = br.open( 'http://www.opensiteexplorer.org/links?site=' + blog )
except Exception:
response = br.open( 'http://www.opensiteexplorer.org/links?site=' + blog )
tree = html.fromstring(response.read())
authority = int (tree.xpath('//span[@class="metrics-authority"]/text()')[1].strip())
if authority>1:
print blog
print 'This blog is ready to be registered'
print authority
f.write(blog +' '+ authority +'\n')
else:
print ''
except Exception:
print ''
print 'Finished'
f.close()
答案 0 :(得分:2)
问题在于:
当你想要做的时候
f.write(blog +' '+ authority +'\n')
Python正在抛出 ValueError
,因为您无法添加int
和str
。您还捕获每个例外,这是不明智的。更改有问题的行以将authority
转换为str
:
f.write(blog +' '+ authority +'\n')
你应该没问题。摆脱毯子except
子句,只捕获你想要捕获的特定异常。在您开发此代码的过程中,我建议您不要抓住任何异常,这样您就可以知道出现问题的原因。