gpt4 book ai didi

python - 在 Python Scraper 中从单个 URL 更改为 Excel 列表

转载 作者:行者123 更新时间:2023-12-01 03:02:26 25 4
gpt4 key购买 nike

我有一个 python scraper,目前一次只能搜索一个网站。

我每天有一个包含 6-700 个网站的列表,这些网站在 Excel 列表中都是相同的。我正在尝试找到一种方法,从单个网站更改为 .xlsm 文件中的单个列中保存的多个网站

我之前编写过一次手动打开 50 个选项卡的代码(参见示例 1)但如果可能的话,希望将该代码或某个版本合并到我的抓取工具中。

(示例 1)

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)

下面是 py scraper

import urllib2
from bs4 import BeautifulSoup
import csv
import lxml
import xlrd

page = urllib2.urlopen(quote_page)
soup = BeautifulSoup(page, 'lxml')
titleTag = soup.html.head.title
titleTag = titleTag.text.strip()
p_class = soup.find('p')
p_class = p_class.text.strip()
d_class = soup.find('div', class_="property-value__price")
d_class = d_class.string.strip()
e_class = soup.find('p', class_="property-value__agent")
e_class = e_class.string.strip()

print titleTag, p_class, d_class, e_class
with open('index2.csv', 'a') as csv_file:
writer = csv.writer(csv_file)
writer.writerow([titleTag, p_class, d_class, e_class])

如上所述,我可以让单个网站正常运行,但不能在某个范围内或从 Excel 工作表中运行。我尝试过将困难的事情自动化,p.t.h.w,数百次的 reddit 和 google 搜索......只是在可能的情况下寻求一些帮助。

干杯:)

最佳答案

您的问题非常广泛,它可以很容易地变成整个编程教程,因此这里有一些可以帮助您入门的要点。

  1. 第一个文件看起来不错。您打开 Excel 文件并循环读取行是正确的。 您缺少的是,您应该调用抓取功能,而不是打开新的网络浏览器选项卡

  2. 您只需粘贴整个抓取代码来代替 webbrowser.open_new_tab(url)调用第一个文件。更好的是,将其放入函数中并在第一个文件中调用该函数。更好的是,将 scraper 放在单独的文件中并将其设为 import能模块。创建 Python 模块可能是一项艰巨的任务,因此您可能需要推迟它,直到您对语言感到更加熟悉为止。

  3. objective-c SV 文件以附加模式打开,这意味着不会覆盖任何数据 - 这很好。根据您从一个站点收集的数据量,您可能希望为每个循环迭代使用单独的文件。这需要将文件名存储在变量中而不是对其进行硬编码。您可以查看 os module了解如何检查文件是否存在、如何为所有这些 CSV 文件创建目录等。

  4. 您应该读取它们,直到找到空单元格或引发一些越界异常,而不是硬编码要读取的行数。

  5. 类似的问题可能更适合 reddit 或类似的编程学习社区。

关于python - 在 Python Scraper 中从单个 URL 更改为 Excel 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43692764/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com