我试图从一个网站上搜集特定的数据。数据只存在于另一个下拉菜单的下拉子菜单中,只有在选择主下拉菜单的特定选项后才能生成。 我使用selenium的Select类来点击这两个菜单-这项功能正常工作。然而,我有一个问题与刮数据。你知道吗
我已经确认数据是通过保存完整的汤.美化找到一个文件。但是每当我使用汤.找(), 汤.findAll()或其他搜索我收到空对象或空列表
from time import sleep
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.support.select import Select
from bs4 import BeautifulSoup
login = {
"handle": "login",
"pass": "password"
}
def ScanBot():
driver.get('http://www.swcombine.com/members/cockpit/travel/index.php?tft=Hyperspace')
sleep(3)
sectorOptions = Select(driver.find_element_by_name('sectors')).options
for i in range (1, len(sectorOptions)):
Select(driver.find_element_by_name('sectors')).select_by_index(i)
sleep(3)
list = Select(driver.find_element_by_name('systemID')).options
for b in range (1, len(list)):
#Select(driver.find_element_by_name('systemID')).select_by_index(b)
text = driver.page_source
soup = BeautifulSoup(text, 'html.parser')
print(soup.find_all('select','id="systemID"'))
if __name__ == '__main__':
chrome_options = Options()
chrome_options.add_argument('--ignore-certificate-errors')
chrome_options.add_argument('--incognito')
# chrome_options.add_argument('--headless')
chrome_options.add_argument("--proxy-server=socks5://127.0.0.1:9150")
driver = webdriver.Chrome(executable_path='./chromedriver', options=chrome_options)
LaunchBot(login)
ScanBot()
每次迭代只打印[]个空结果
<select name="systemID" id="systemID" onchange="setCoordsFromSystem()">
<option data-galx="71" data-galy="-166">-- System --</option>
<option data-galx="-24" data-galy="-76">Abregado</option>
<option data-galx="-26" data-galy="-86">Belgaroth</option>
<option data-galx="-38" data-galy="-87">Delphon</option>
<option data-galx="-24" data-galy="-81">Dentaal</option>
<option data-galx="-19" data-galy="-87">Diamal</option>
<option data-galx="-21" data-galy="-70">Eamus</option>
<option data-galx="-10" data-galy="-72">Frego</option>
<option data-galx="0" data-galy="-82">Iphigin</option>
<option data-galx="-19" data-galy="-74">Plexis</option>
<option data-galx="-30" data-galy="-80">Steelious</option>
</select>
这是我需要掌握的源代码的一部分 最好返回如下列表:
-24,-76阿布雷加多
贝尔加洛斯-26,-86
等等等等
非常感谢您的帮助
我认为问题是
print(soup.find_all('select','id="systemID"'))
的一部分 更改为:您将看到目标输出 你可以得到如下数据:
输出:
相关问题 更多 >
编程相关推荐