如何在Python中逐行使用数据帧中的for切片



我是Python的新手,我正在从事一项网络自动化工作,抓取一些数据并帮助我进行分析。

所以,我在一个数据帧中有这些数据,比如:

Name    site data1    site data2    SiteID
name1       23 ins       43 vid     082820399
name2       67 ins        3 vid     996820344
name3       55 ins       67 vid     201988493

使用selenium刮取数据,但我需要的是制作一个函数,为我的函数选择SiteID列中的每一行,在其中运行刮擦

一开始我尝试过制作for切片,尝试过使用".iterrows"one_answers".iteritems",尝试过在for切片中使用"apply",但都不起作用。

出现的是页面打开,但没有任何URL。

我的代码是这样的:

df = pd.read_csv('channel_data.csv')
df1 = df['SiteID']

class Channel_DSO:
for links, row in df1.iterrows():
def canais_dados():

driver = webdriver.Chrome(
'C:/chromedriver_win32_3/chromedriver.exe')
for link in links:
driver.get('{}/site?param=0&flow'.format(links))
content = driver.page_source.encode ('utf-8').strip()
soup = BeautifulSoup (content, 'lxml')
site_detail = []
detail = soup.find_all('a', id='site-detail')
for detail in details:
site_detail.append(details.text)
link_detail = []
l_details = soup.find_all('span', class_='link-detail-text') 
for l_detail in l_details:
link_detail.append(l_details.text)

sites_data = []
for detail, l_detail in zip(site_detail, link_detail):
sites_data.append(
{'Site': detail, 'L detail': l_detail})
driver.quit()

我不知道该怎么办,我在网上搜索任何回复。

很抱歉,如果这个问题太难回答,如果我说错了什么。。。

希望有人能帮我…谢谢!!

编辑:我写的是scrape,而不是scrape(谢谢barny(;我还看到我的代码中的另一个错误:;df1=df[‘站点ID’]";我已经选择了另一个专栏,但它不会影响结果。很抱歉,不想打扰你。

我找到了一个解决方案。。。只是在类中创建另一个"def"函数。

我的解决方案运行良好,可以迭代数据帧中的每一行。

工作原理:

df = pd.read_csv('channel_data.csv')
df1 = df['SiteID']

class __init__: 
def canais_dados():   
driver = webdriver.Chrome(
'C:/chromedriver_win32_3/chromedriver.exe')
for link in links:
driver.get('{}/site?param=0&flow'.format(links))
content = driver.page_source.encode ('utf-8').strip()
soup = BeautifulSoup (content, 'lxml')
site_detail = [] 
detail = soup.find_all('a', id='site-detail')
for detail in details:
site_detail.append(details.text)
link_detail = []
l_details = soup.find_all('span', class_='link-detail-text') 
for l_detail in l_details:
link_detail.append(l_details.text)

sites_data = []
for detail, l_detail in zip(site_detail, link_detail):
sites_data.append(
{'Site': detail, 'L detail': l_detail})
driver.quit()
def links_loop:
for links in links:
loop = next(links.iteritem[i+1])
if loop == False:
links_loop.exit()
elif loop == True:
exec(canais_dados)

它运行良好。感谢所有人,并对diturb或任何错误表示歉意。

相关内容

  • 没有找到相关文章

最新更新