python - 我正在尝试在“https://dribbble.com/jobs”上抓取公司的名称
问题描述
当我尝试以下代码时,它只会再次返回第一项。我是 python 新手,所以不胜感激。
import pandas as pd
from selenium import webdriver
from time import sleep
driver = webdriver.Chrome('/Users/user/Downloads/chromedriver_win32/chromedriver')
driver.get('https://dribbble.com/jobs')
assert 'Dribbble' in driver.title
columns = ['company']
count = 0
jobs = pd.DataFrame(columns=columns)
for item in range(10):
company_elem = "job-board-job-title"
company = driver.find_element_by_class_name(company_elem).text
item+=1
jobs.loc[item] = [company]
driver.close()
解决方案
import pandas as pd
from selenium import webdriver
# from time import sleep
driver = webdriver.Chrome(r'E:\data\python\pycharm\chromedriver_win32\chromedriver.exe')
driver.get('https://dribbble.com/jobs')
assert 'Dribbble' in driver.title
columns = ['company']
count = 0
jobs = pd.DataFrame(columns=columns)
# for item in range(10):
# company_elem = "job-board-job-title"
companies = driver.find_elements_by_class_name("job-board-job-title")
for i in companies:
print(i.text)
# count += 1
# jobs.loc[count] = [company]
# print(jobs)
driver.close()
现在对您的代码进行了一些更改,您需要获取所有元素,而不是使用 find 元素的 1,使用 find 元素。https://selenium-python.readthedocs.io/locating-elements.html#locating-elements-by-class-name
推荐阅读
- flutter - 相对于另一个小部件颤动固定小部件
- pine-script - 检查是否在特定位置
- python - 对于 CSV 中的每一行,从第二个 CSV 添加行
- regex - Perl 兼容的正则表达式与 Haskell 中无法识别的字符类
- javascript - 每 5 秒随机发声
- objective-c - 如何从触控板点击判断NSEvent,而不是点击点击
- python - 如何修复 ModuleNotFoundError:没有名为“networkx.drawing”的模块;“networkx”不是一个包
- google-chrome - 无法声明我可以通过 device.configuration.interfaces 看到的唯一接口
- python - Travis-CI:不要因为 linter 警告而导致构建失败
- python-3.x - 在 Python 上本地运行烧瓶的问题