Python 爬虫
文章平均质量分 61
程序猿-张益达
我们登上并非我们所选择的舞台,演出并非我们所选择的剧本
展开
-
Scrapy API 启动爬虫
scarpy 不仅提供了 scrapy crawl spider 命令来启动爬虫,还提供了一种利用 API 编写脚本 来启动爬虫的方法。scrapy 基于 twisted 异步网络库构建的,因此需要在 twisted 容器内运行它。可以通过两个 API 运行爬虫:scrapy.crawler.CrawlerProcess 和 scrapy.crawler.CrawlerRunner。原创 2023-04-07 10:16:04 · 840 阅读 · 0 评论 -
dddd带带弟弟OCR识别验证码
在 github 上找到一个开源库,而且还很强大。这个库叫 ddddocr ,原创 2022-08-12 11:04:09 · 3249 阅读 · 0 评论 -
Mac上使用Charles抓包
Charles由Java开发,请先安装好JDK(笔者JDK版本为1.8.0_91)。官网下载地址,目前最新版本4.0.2支持macOS 10.7 - 10.12(笔者macOS版本为10.12.4)。为了正常使用Charles,请关闭自己的VPN或者其他代理设置。抓取PC端请求,需要安装证书:install Charles Root Certificate 安装完成以后,手动设置信任该证书设置为*,表示抓取所有域的请求;设置 为443,表示抓取HTTPS的请求设置完成以后,点击勾选,表示启用,再次点击ok原创 2022-07-05 15:43:18 · 2645 阅读 · 0 评论 -
selenium webdrive使用
一、selenium浏览器驱动的下载与调用1、安装三大浏览器驱动driver①chrome的驱动chromedriver 下载地址:https://code.google.com/p/chromedriver/downloads/listhttp://chromedriver.storage.googleapis.com/index.htmlCNPM Binaries Mirror②IE的驱动IEdriver 下载地址:NuGet Gallery | Selenium...原创 2022-03-28 18:14:04 · 4690 阅读 · 1 评论 -
selenium使用
概念:基于浏览器自动化的一个模块。 环境的安装: pip install selenium selenium和爬虫之间的关联: 模拟登录 便捷的捕获到动态加载的数据(重点) 特点:可见及可得 缺点:效率低 selenium的具体使用 准备浏览器的驱动程序:http://chromedriver.storage.googleapis.com/index.html 具体代码实现: from ...原创 2022-03-28 17:30:44 · 1178 阅读 · 0 评论 -
selenium 使用技巧
Web自动化去除“Chrome正在受到自动化测试软件的控制“from selenium import webdriverimport timeoption =webdriver.ChromeOptions()# 旧版本浏览器-解决控制提示(97.0.4692.71版本未生效)# option.add_argument('disable-infobars')# 新版本谷歌浏览器-解决控制提示option.add_experimental_option('useAutomationEx原创 2022-03-28 17:20:28 · 408 阅读 · 0 评论 -
selenium+python自动化87-Chrome浏览器静默模式启动(headless)
selenium+phantomjs可以打开无界面的浏览器,实现静默模式启动浏览器完成自动化测试,这个模式是极好的,不需要占用电脑的屏幕。但是呢,phantomjs这个坑还是比较多的,并且遇到问题也看不到页面,无法排查问题。事实上Chrome浏览器也是可以实现静默模式,在电脑上不显示页面,也能实现自动化测试。环境:python 3.6selenium 3.6.0chrome 63.0.3239.84chromdriver 2.33.506120(我这个配置是亲测可行的,其它的版本太.原创 2022-03-14 14:31:04 · 919 阅读 · 0 评论 -
python-selenium常用操作
# 2打开两个网站前进或者后退def test_visitur2(self): visiturl = 'http://www.baidu.com' visitur2 = 'http://www.so.com' self.driver.get(visiturl) self.driver.get(visitur2) self.driver.back() self.driver.forward()# 3刷新当前页面def test_visitur3(sel.原创 2022-03-14 14:26:21 · 648 阅读 · 0 评论 -
获取或操纵Selenium Webdriver中的所有Cookie
可以提供一个userdir并从中提取cookieco = webdriver.ChromeOptions()co.add_argument("--user-data-dir=userdir")browser = webdriver.Chrome(chrome_options = co) Cookie将以userdir / Default / Cookies这是一个SQLite3数据库。原创 2022-03-14 14:18:36 · 1384 阅读 · 0 评论 -
Linux下使用selenium数据抓取报错问题(网页加载失败)
unknown error: Chrome failed to start: exited abnormally (Driver info: chromedriver=...)linux下命令行运行报错Message: unknown error: Chrome failed to start: exited abnormally(Driver info: chromedriver=2.36.540471 (9c759b81a907e70363c6312294d30b6ccccc2752),.原创 2022-03-14 11:05:39 · 855 阅读 · 0 评论 -
python爬虫之xpath的基本使用
一、简介 XPath 是一门在 XML 文档中查找信息的语言。XPath 可用来在 XML 文档中对元素和属性进行遍历。XPath 是 W3C XSLT 标准的主要元素,并且 XQuery 和 XPointer 都构建于 XPath 表达之上。二、安装pip3 install lxml三、使用1、导入from lxml import etree2、基本使用from lxml import etree wb_data = """ <div&原创 2022-02-10 15:28:57 · 241 阅读 · 0 评论 -
python爬虫常用浏览器标识请求头设置
import randomimport re def get_headers(url, use='pc'): pc_agent = [ "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50", "Mozilla/5.0 (Windows; U; Windows NT .原创 2022-02-10 15:19:12 · 729 阅读 · 0 评论 -
python爬虫(常见爬取失败问题)
在互联网上进行自动数据采集(抓取)这件事和互联网存在的时间差不多一样长。今天大众好像更倾向于用“网络数据采集”,有时会把网络数据采集程序称为网络机器人(bots)。最常用的方法是写一个自动化程序向网络服务器请求数据(通常是用 HTML 表单或其他网页文件),然后对数据进行解析,提取需要的信息。在采集网站的时会遇到一些比数据显示在浏览器上却抓取不出来更令人沮丧的事情。也许是向服务器提交自认为已经处理得很好的表单却被拒绝,也许是自己的 IP 地址不知道什么原因直接被网站封杀,无法继续访问。原因可能是一.原创 2022-02-10 15:17:41 · 18939 阅读 · 0 评论 -
Python Requests.post()请求失败时的retry设置
1. 问题描述 通常,我们在做爬虫工作或远程接口调用的过程中,往往由于访问频率过快等原因遇到连接超时的报错问题,利用最近调用api.ai.qq.com某个接口举例如下:Traceback (most recent call last):<class 'Exception'> : HTTPSConnectionPool(host='api.ai.qq.com', port=443):Max retries exceeded with url: /fcgi-bin/nlp/nlp_t原创 2022-02-10 14:59:10 · 2335 阅读 · 0 评论 -
Python使用Requests请求网页
安装方式利用 pip 安装$ pip install requests基本GET请求(headers参数 和 parmas参数)最基本的GET请求可以直接用get方法原创 2022-02-10 14:56:19 · 4090 阅读 · 0 评论 -
python 从url中提取域名和path
使用Python 内置的模块 urlparsefrom urlparse import *url = 'https://docs.google.com/spreadsheet/ccc?key=blah-blah-blah-blah#gid=1'result = urlparse(url)result 包含了URL的所有信息>>> from urlparse import *>>> url = 'https://docs.google.com/spre原创 2022-02-09 17:57:01 · 497 阅读 · 0 评论 -
python爬虫之针对http2.0的某网站爬取
http2.0啥东西呢?可以看看下面两个文字参考链接:超强反爬虫方案!Requests 什么的通通爬不了https://mp.weixin.qq.com/s/dFxyRYmqm5if8k-S1MjFJwPython requests在HTTP2.0下的问题 | 小丁的个人博客https://tding.top/archives/9bd92731.html如果你觉得浪费时间的话,可以看我下面说的,精简过的:...原创 2022-02-09 17:55:37 · 4189 阅读 · 0 评论 -
Python 线程间同步之信号量Semaphore
用处信号量semaphore 是用于控制进入数量的锁。有哪些应用场景呢,比如说在读写文件的时候,一般只能只有一个线程在写,而读可以有多个线程同时进行,如果需要限制同时读文件的线程个数,这时候就可以用到信号量了(如果用互斥锁,就是限制同一时刻只能有一个线程读取文件)。又比如在做爬虫的时候,有时候爬取速度太快了,会导致被网站禁止,所以这个时候就需要控制爬虫爬取网站的频率。实例semaphore内部维护了一个条件变量condition,构造函数是:Semaphore(value=1) # v原创 2021-12-30 17:45:41 · 614 阅读 · 0 评论 -
python脚本传递参数
argparse基本用法argparse 是python自带的命令行参数解析包,可以用来方便地读取命令行参数。它的使用也比较简单。1.基本框架下面是采用argparse从命令行获取用户名,该python的文件名为:fun_test.pyimport argparsedef main(): parser = argparse.ArgumentParser(description="Demo of argparse") parser.add_argument('-n'.原创 2021-12-30 16:40:04 · 970 阅读 · 0 评论 -
HTTP协议网络请求状态码
常见的HTTP状态码2开头 (请求成功)表示成功处理了请求的状态代码。200 (成功) 服务器已成功处理了请求。 通常,这表示服务器提供了请求的网页。201 (已创建) 请求成功并且服务器创建了新的资源。202 (已接受) 服务器已接受请求,但尚未处理。203 (非授权信息) 服务器已成功处理了请求,但返回的信息可能来自另一来源。204 (无内容) 服务器成功处理了请求,但没有返回任何内容。205 (重置内容) 服务器成功处理了请求,但没有返回...原创 2021-12-28 10:29:04 · 686 阅读 · 0 评论 -
Python 解决网页元素无法定位(NoSuchElementException: Unable to locate element)的几种方法
出错形式出错原因1.可能元素加载未完成元素加载没完成,同样的路径定位,每次测试结果确是不一样的,有时候抛出错误,有时候正常!这就比较蛋疼了,也就是说,和你的定位方法半毛钱关系没有,而很大程度上取决于你的电脑和网速! 解决方案A:添加两行代码 wait = ui.WebDriverWait(driver,10)wait.until(lambda driver: driver.find_element_by_方法("定位路径自己来"))WebDriverWait(driv...原创 2021-08-17 17:59:45 · 2823 阅读 · 3 评论