代码编织梦想

爬虫学习-爱代码爱编程

线程锁 当多个线程几乎同时修改某一个共享数据的时候,需要进行同步控制 某个线程要更改共享数据时,先将其锁定,此时资源的状态为"锁定",其他线程不能改变,只到该线程释放资源,将资源的状态变成"非锁定",其他的线程才能再次锁定该资源。互斥锁保证了每次只有一个线程进行写入操作,从而保证了多线程情况下数据的正确性。 创建锁 mutex = threadi

爬虫学习-爱代码爱编程

爬虫与反爬虫的斗争 爬虫建议 尽量减少请求次数 保存获取到的HTML,供查错和重复使用 关注网站的所有类型的页面 H5页面 APP 多伪装 代理IP import requests proxy = {    'http': '117.114.149.66:55443'    # mgvpn http

爬虫学习-爱代码爱编程

操作多窗口与页面切换 有时候窗口中有很多子tab页面。这时候肯定是需要进行切换的。selenium提供了一个叫做switch_to.window来进行切换,具体切换到哪个页面,可以从driver.window_handles中找到。 from selenium import webdriver from selenium.webdriver

爬虫学习-爱代码爱编程

鼠标行为链 有时候在页面中的操作可能要有很多步,那么这时候可以使用鼠标行为链类ActionChains来完成。比如现在要将鼠标移动到某个元素上并执行点击事件。 actions = ActionChains(driver) actions.move_to_element(inputTag) actions.send_keys_to_element(

爬虫学习-爱代码爱编程

MySQL数据库的基本操作 创建数据库 我们可以在登陆 MySQL 服务后,使用命令创建数据库,语法如下: CREATE DATABASE 数据库名; 显示所有的数据库 show databases; 删除数据库 使用普通用户登陆 MySQL 服务器,你可能需要特定的权限来创建或者删除 MySQL 数据库,所以我们这边