Python 线程交互

– Start

点击此处观看本系列配套视频。


条件变量

from threading import Thread
from threading import Condition

# 条件变量
condition = Condition()
data = list()


def producer():
    with condition:
        for i in range(10):
            # 此处必须是 while
            while len(data) > 0:
                # 如果消息没有被接收,等待被通知
                condition.wait()

            # 发送消息
            msg = f'message {i}'
            data.append(msg)
            print(f'sent {msg}')
            condition.notify_all()

        # 发送 None,表示消息发送完毕
        while len(data) > 0:
            condition.wait()
            data.append(None)
            condition.notify_all()
            return


def consumer():
    while True:
        with condition:
            # 此处必须是 while
            
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python爬虫的交互可以通过多线程和Selenium来实现。使用多线程可以提高爬虫的效率,因为爬虫大部分时间都花在网络交互上,通过多线程可以同时发起多个网络请求。而Selenium是一个强大的工具,它可以模拟用户在浏览器中的真实操作,例如输入内容、点击按钮、执行脚本等。 下面是一个示例代码,演示了如何使用Selenium进行自动化操作。首先,我们需要导入Selenium库和一些必要的模块。然后,我们需要创建一个浏览器对象,这里使用Chrome浏览器作为示例。接着,我们打开百度搜索页面,并输入关键词"周杰伦"。然后,我们可以进行一系列操作,如滑动页面到最底部、点击下一页等。最后,我们关闭浏览器。 ```python from selenium import webdriver from selenium.webdriver.common.by import By import time path = 'chromedriver.exe' browser = webdriver.Chrome(path) url = 'https://www.baidu.com' browser.get(url) time.sleep(2) input_ = browser.find_element(By.ID, 'kw') input_.send_keys('周杰伦') time.sleep(2) button = browser.find_element(By.ID, 'su') button.click() time.sleep(2) js_bottom = 'document.documentElement.scrollTop=100000' browser.execute_script(js_bottom) time.sleep(2) next_page = browser.find_element(By.CLASS_NAME, 'n') next_page.click() browser.back() time.sleep(2) browser.forward() time.sleep(2) browser.quit() ``` 这段代码实现了自动打开百度搜索,输入关键词"周杰伦",滑动页面到最底部,点击下一页,返回上一页面,前进到下一页面,最后关闭浏览器。通过这些操作,可以实现Python爬虫的交互

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值