【发布时间】:2016-12-10 15:32:49
【问题描述】:
我在完成一个项目之前迈出了一步。据我所知,代码的所有部分都有效,我已经分别测试了它们。但是,由于某种原因,输出 CSV 仍然为空。我的代码:
import requests, bs4, csv, sys
reload(sys)
sys.setdefaultencoding('utf-8')
url = 'http://www.constructeursdefrance.com/resultat/?dpt=01'
count = 1
def result():
res = requests.get(url)
res.raise_for_status()
soup = bs4.BeautifulSoup(res.text,'html.parser')
links = []
try:
for div in soup.select('.link'):
link = div.a.get('href')
links.append(link)
with open('french.csv', 'wb') as file:
writer = csv.writer(file)
for i in links:
res2 = requests.get(i)
soup2 = bs4.BeautifulSoup(res2.text, 'html.parser')
for each in soup2.select('li > strong'):
writer.writerow([each.text, each.next_sibling])
except:
pass
while not url.endswith('?dpt=010'):
print 'downloading %s' %url
result()
count += 1
url = 'http://www.constructeursdefrance.com/resultat/?dpt=0' + str(count)
url = 'http://www.constructeursdefrance.com/resultat/?dpt=10'
count = 10
while not url.endswith('?dpt=102'):
print 'downloading %s' %url
result()
count += 1
url = 'http://www.constructeursdefrance.com/resultat/?dpt=' + str(count)
print 'done'
这确实是我作为初学者尝试解决的第一个更大的项目之一。然而,如此接近却又如此卡住是令人沮丧的。任何帮助表示赞赏。
【问题讨论】:
-
我猜你的 try 块中有一个异常,而 except: pass 并没有告诉你它是什么。永远不要使用 except:如果异常对代码逻辑很重要,则通过。
标签: python csv web-scraping beautifulsoup