如何通过CSV列表循环抓取Python网页?

1 投票
1 回答
4379 浏览
提问于 2025-04-15 14:24

嗨,我有一个包含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

撰写回答