如何通过CSV列表循环抓取Python网页?
嗨,我有一个包含10个网站的CSV文件。所有这些网站的格式都差不多,里面都有一个很大的表格。我只想要第7列的数据。我能提取HTML并通过正则表达式过滤出第7列的数据,但我不知道怎么循环处理CSV文件。我觉得我快成功了,但我的脚本就是运行不起来。如果有人能帮我解决这个问题,我会非常感激。以下是我现在的代码:
#Python v2.6.2
import csv
import urllib2
import re
urls = csv.reader(open('list.csv'))
n =0
while n <=10:
for url in urls:
response = urllib2.urlopen(url[n])
html = response.read()
print re.findall('td7.*?td',html)
n +=1
1 个回答
2
当我复制你的代码时,出现了空格或制表符错误。检查一下你的制表符。你在用循环计数器访问网址字符串时出错了,这也会导致问题。
另外,其实你不需要用计数器来控制循环。这个循环会针对你CSV文件中的每一行进行处理。
#Python v2.6.2
import csv
import urllib2
import re
urls = csv.reader(open('list.csv'))
for url in urls:
response = urllib2.urlopen(url[0])
html = response.read()
print re.findall('td7.*?td',html)
最后,确保你的网址格式正确:
http://www.cnn.com
http://www.fark.com
http://www.cbc.ca