我在循环方面遇到麻烦(似乎一直都是0),甚至从第0页上都没有得到TR和TD元素,所以我的脚本肯定有问题。
from bs4 import BeautifulSoup
import requests
import pandas as pd
import csv
cnt = 0
# count from 0 to 3
while (cnt < 4):
url = "https://www.anyurl/admin/?page=" + str(cnt)
print(cnt)
page = requests.get(url)
pagetext = page.text
# print(pagetext)
soup = BeautifulSoup(pagetext, 'html.parser')
#print(soup)
file = open("C:/Users/ryans/OneDrive/Desktop/test.csv", 'w')
for row in soup.find_all('tr'):
for col in row.find_all('td'):
info1 = row.text
info2 = col.text
file.write(info1)
file.write(info2)
print(cnt)
cnt = cnt + 1
file.close()
我认为上面的代码非常接近,但是这里肯定有一些问题。
我可能需要这样的Selenium解决方案...
import requests
import selenium
from selenium import webdriver
from bs4 import BeautifulSoup
from webbot import Browser
from selenium.webdriver.common.keys import Keys
import time
web = Browser()
cnt = 0
# count from 0 to 3
while (cnt < 4):
url = "https://www.anyurl/admin/?page=" + str(cnt)
web.go_to(url)
time.sleep(2)
# 1st validation
web.type('my.email@gmail.com', into='username')
web.click('Next')
# Wait for 2 seconds
time.sleep(2)
# password
web.type('my_password', into='Password')
web.click('Next')
time.sleep(2)
Somehow...I need to iterate through TR elements and TD elements here....
cnt = cnt + 1
我确定知道的是,有一个表名为table id="dags"
TR和TD片段也这样交替变化:
TR类交替为“奇数”和“偶数”。
基本上,我尝试从0到3进行计数,刮除所有TR元素和所有TE元素,并将所有内容写入CSV文件。这是公司防火墙后面的内部URL,所以我不能在此处共享实际的URL。
我使用的是Python 3.6。
答案 0 :(得分:0)
请检查以下页面:
入门 (标准的东西开始你的脚本) https://selenium-python.readthedocs.io/getting-started.html
启动驱动程序后,可以通过以下方法找到内容: https://selenium-python.readthedocs.io/navigating.html
就您而言,您可能需要以下类似内容;遍历列表并将内容写入文件。
td_list = driver.find_elements_by_tag_name('td')