selenium爬虫时driver报错的error

WebDriverException: Message: unknown error: unhandled inspector error: {"code":-32000,"message":"Cannot find execution context with given id"}

 

原因:

1.chromedrive.exe没指名路径或者没有放到该文件夹之下

2.url格式有错,我写的是‘www.amazon.com’报错,应该是‘https://www.amazon.com/

### 使用 Selenium 抓取股吧网页数据 为了实现股吧网页的数据抓取,可以利用 Selenium 工具来模拟用户的交互行为。下面是一个详细的 Python 脚本实例,用于展示如何通过 Selenium 来完成这一目标。 #### 安装依赖库 首先需要确保已经安装了必要的Python包: ```bash pip install selenium pandas openpyxl ``` 接着还需要下载与所使用的浏览器版本相匹配的 WebDriver 文件,并将其路径加入环境变量中[^1]。 #### 初始化 WebDriver 和设置参数 创建一个新的脚本来初始化 Chrome 或 Firefox 的 WebDriver 对象,并配置一些基本选项以便更好地控制浏览器的行为: ```python from selenium import webdriver from selenium.webdriver.chrome.service import Service as ChromeService from selenium.webdriver.firefox.service import Service as FirefoxService from selenium.webdriver.common.by import By import time options = webdriver.ChromeOptions() # 可选:无头模式启动(不显示GUI界面) # options.add_argument('--headless') driver_service = ChromeService(executable_path='path/to/chromedriver') # 替换成实际路径 browser = webdriver.Chrome(service=driver_service, options=options) try: browser.get('https://guba.eastmoney.com/') # 访问东方财富网股吧首页 finally: pass ``` #### 登录过程 (如果有需要的话) 某些情况下可能需要先登录才能访问特定资源,在这种情形下可以通过填充表单字段并提交来进行登录操作: ```python username_input = browser.find_element(By.NAME, 'username') password_input = browser.find_element(By.NAME, 'password') username_input.send_keys('your_username_here') password_input.send_keys('your_password_here') login_button = browser.find_element(By.CSS_SELECTOR, '.btn-login') login_button.click() time.sleep(5) # 等待页面加载完毕 ``` #### 获取指定股票代码下的帖子列表 假设已经有了具体的股票代码,则可以直接进入相应的讨论版面收集信息: ```python stock_code = "000858" url_template = f"https://guba.eastmoney.com/list,{stock_code}.html" def fetch_posts_from_page(page_url): posts_data = [] try: browser.get(page_url) post_elements = browser.find_elements(By.CLASS_NAME, 'articleh') for element in post_elements: title = element.find_element(By.TAG_NAME, 'a').text.strip() author = element.find_element(By.XPATH, './span[@class="author"]/font').get_attribute('textContent').strip() single_post_info = { 'title': title, 'author': author } posts_data.append(single_post_info) except Exception as e: print(f"Error occurred while fetching data from {page_url}: ", str(e)) finally: return posts_data all_pages_urls = [f"{url_template}?announcements={i}" for i in range(1)] # 这里只处理第一页作为例子 collected_posts = [] for url in all_pages_urls: collected_posts.extend(fetch_posts_from_page(url)) print(collected_posts[:3]) # 打印前三个采集到的文章信息 ``` 上述代码片段展示了如何定位 HTML 文档中的元素以及提取所需的信息。请注意这里的 `CLASS_NAME` 和其他选择器可能会随着网站结构的变化而失效,因此在正式部署之前应当仔细验证这些选择器的有效性[^3]。 #### 数据保存至文件 最后一步是将获得的数据存储下来供后续分析使用: ```python import pandas as pd df = pd.DataFrame(collected_posts) excel_file_name = "./output/stocks_discussion.xlsx" sheet_title = stock_code + "_posts" with pd.ExcelWriter(excel_file_name) as writer: df.to_excel(writer, sheet_name=sheet_title, index=False) ``` 以上即为完整的流程说明及示例代码,可以根据具体需求调整相应部分以适应不同的应用场景。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值