我有一个python scraper,目前一次只能搜索一个网站。
我每天都有6-700个网站的列表,这些网站在excel列表中都是相同的。 我试图找到一种方法从单个网站更改为.xlsm文件中单个列中的多个网站
我之前编写的代码一次手动打开50个标签(参见示例1) 但是如果可能的话,我希望将这些代码或版本合并到我的刮刀中。
(示例1 )
@push('body-class', 'your-class-name')
@push('body-class', ' another-class-name')
下面是py scraper
import webbrowser
import xlrd
file_location = "C:\Python27\REAScraper\ScrapeFile.xlsm"
workbook = xlrd.open_workbook(file_location)
sheet = workbook.sheet_by_name("Sheet1")
url_column = 3
for row in range(1, 1000):
if row % 1 == 0:
raw_input("Paused. Press Enter to continue")
url = sheet.cell_value(row, url_column)
webbrowser.open_new_tab(url)
如上所述,我可以让单个网站运行,但不在范围内或从excel表。我已经尝试过自动化硬件,p.t.h.w,100&reddit&谷歌搜索....如果可能的话,只是寻找一些帮助。
干杯:)
答案 0 :(得分:2)
您的问题非常广泛,很容易变成整个编程教程,所以这里有几点可以帮助您入门。
第一个文件看起来没问题。打开Excel文件并循环读取行是正确的。 您缺少的是,您应该使用刮刀功能来代替打开新的网络浏览器标签。
您只需在第一个文件中粘贴整个刮刀代码代替webbrowser.open_new_tab(url)
调用即可。更好的是,将其置于函数中并在第一个文件中调用该函数。更好的是,将刮刀保存在单独的文件中,并使其成为import
能力模块。创建python模块可能是一项艰巨的任务,所以你可能需要推迟它,直到你对语言感觉更舒服为止。
目标CSV文件以追加模式打开,这意味着不会覆盖任何数据 - 这很好。根据您从一个站点收集的数据量,您可能希望为每个循环迭代使用单独的文件。这需要将文件名存储在变量中而不是硬编码。您可以查看os
module以了解如何检查文件是否存在,如何为所有这些CSV文件创建目录等。
您应该读取它们,直到找到空单元格或引发一些超出范围的异常,而不是硬编码要读取的行数。
这样的问题可能更适合reddit或类似的编程学习社区。 p>