重复程序并更改 CSS 选择器
Repeat Program & Changing CSS Selector
我对写作如此陌生Python,以至于我什至不确定如何搜索我寻求的答案,我很抱歉确实请求现成的信息。
我正在编写一个程序,从 excel 电子表格中提取帐号,在浏览器中打开帐户信息,从帐户页面抓取信息,然后将数据输入回电子表格中。我有两个问题:
我需要创建一个循环,在完成前一个帐户的整个抓取过程后提取电子表格中的下一个帐号,但我不确定该怎么做:A2 >> A500。
我的另一个问题是帐户页面上的一个图表对每个帐户都有唯一的 css 选择器。这意味着,尽管它都是估值信息,位于相同的位置,相同的格式等。我不能只输入 ('#table-740 > tbody:nth-.....' ) 并期望它起作用。我正在使用以下代码:
oldValuation = browser.find_element_by_css_selector ('unique css selector')
这个问题是如何解决的?
我的基本代码如下:
import bs4, requests, openpyxl
import os
os.chdir('C:\Users\al\Desktop')
addresses = openpyxl.load_workbook ('Book4.xlsx')
type (addresses)
sheet = addresses.get_sheet_by_name ('Sheet1')
cell = sheet ['E2']
在 运行 数据通过抓取代码后,我需要循环回到上面的代码以提取不同的帐户。想知道我是否需要一个 for 语句?
感谢您的耐心等待和帮助!
你肯定需要一个循环。使用 iter_rows()
逐行遍历工作表:
for row in sheet.iter_rows(row_offset=1): # start with row 2
cells = list(row)
account_number = cells[0].value
然后,您可以使用字符串格式化来动态构建 CSS 选择器:
value_unique_for_account = cells[1] # assuming it is in the B column
selector = "#table-%d > tbody:nth-child(2) > tr:nth-child(1) > td:nth-child(6)" % value_unique_for_account
oldValuation = browser.find_element_by_css_selector(selector)
我对写作如此陌生Python,以至于我什至不确定如何搜索我寻求的答案,我很抱歉确实请求现成的信息。
我正在编写一个程序,从 excel 电子表格中提取帐号,在浏览器中打开帐户信息,从帐户页面抓取信息,然后将数据输入回电子表格中。我有两个问题:
我需要创建一个循环,在完成前一个帐户的整个抓取过程后提取电子表格中的下一个帐号,但我不确定该怎么做:A2 >> A500。
我的另一个问题是帐户页面上的一个图表对每个帐户都有唯一的 css 选择器。这意味着,尽管它都是估值信息,位于相同的位置,相同的格式等。我不能只输入 ('#table-740 > tbody:nth-.....' ) 并期望它起作用。我正在使用以下代码:
oldValuation = browser.find_element_by_css_selector ('unique css selector')
这个问题是如何解决的?
我的基本代码如下:
import bs4, requests, openpyxl
import os
os.chdir('C:\Users\al\Desktop')
addresses = openpyxl.load_workbook ('Book4.xlsx')
type (addresses)
sheet = addresses.get_sheet_by_name ('Sheet1')
cell = sheet ['E2']
在 运行 数据通过抓取代码后,我需要循环回到上面的代码以提取不同的帐户。想知道我是否需要一个 for 语句?
感谢您的耐心等待和帮助!
你肯定需要一个循环。使用 iter_rows()
逐行遍历工作表:
for row in sheet.iter_rows(row_offset=1): # start with row 2
cells = list(row)
account_number = cells[0].value
然后,您可以使用字符串格式化来动态构建 CSS 选择器:
value_unique_for_account = cells[1] # assuming it is in the B column
selector = "#table-%d > tbody:nth-child(2) > tr:nth-child(1) > td:nth-child(6)" % value_unique_for_account
oldValuation = browser.find_element_by_css_selector(selector)