![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
爬虫技术-python
总结一些工作中遇到的爬虫问题和解决方法,反爬等等
优惠券已抵扣
余额抵扣
还需支付
¥9.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
威震四海
西北玄天一片云,乌鸦落进了凤凰群.........
展开
-
Python调用sqlserver的远程存储过程
Python调用执行远程sqlserver存储过程原创 2022-07-20 09:39:26 · 1043 阅读 · 0 评论 -
Python操作sqlserver中文乱码
sqlserver中文乱码原创 2022-07-08 15:23:38 · 1578 阅读 · 0 评论 -
MySQL 英文格式日期转换
MySQL 英文格式日期转换原创 2022-06-10 16:14:32 · 1987 阅读 · 1 评论 -
关于selenium的等待
1、强制等待time.sleep()2、隐式等待implicitly_wait()设置等待时间,如果到时间有元素节点没有加载出来,就会抛出异常from selenium import webdriverbrowser = webdriver.Chrome()# 隐式等待,等待时间10秒browser.implicitly_wait(10) browser.get('https://www.baidu.com')print(browser.current_url)prin转载 2022-01-26 16:16:29 · 903 阅读 · 0 评论 -
webdriver下载文件提示错误下载失败
如图,使用webdriver的过程中出现如下提示,代码正常,下载地址正常,在正常浏览器中也可以成功下载文件但是模拟浏览器却无法成功获取文件;尝试了开发模式启动、禁用或启用js等等,都没有成功,快要放弃chrome准备改选firefox的时候,看到了一个解决方法:此方法只针对一种情况有效:如果你在下载路径前加了r,转义了原始字符串,如下那么,去掉“r”试一下成功了如有问题请留言...原创 2021-05-10 14:54:03 · 1378 阅读 · 1 评论 -
油管频道video界面,不借助webdriver,怎么触发下一页
YouTube爬虫到目前为止已经运行了将近3年,经历了页面结构的不断变化和调整一个正常的红人频道页面如下:有home、videos、playlists、channels、about5个界面构成分别代表首页、视频、播放列表、订阅频道、简介video页面可以看到红人主播发布过的的所有历史视频,少则没有,多则上千,如何利用http请求获取到所有的video呢?研究发现,请求该页面时,默认返回前30个视频数据(如果数量大于30),后面的数据需要出发新的ajax请求进行加载手动触发一下原创 2021-02-25 14:11:13 · 928 阅读 · 6 评论 -
Python操作Excel造成的科学记数法问题
需求:现有一批Excel文件,数量比较多,需要在每个Excel文件最后加上固定的一列比如:列名time,值为某个日期2021-02-04处理方式:这里使用pandas对文件进行追加首先读取文件,获取内容、行数然后构造最后一列最后追加写入如下:def add_the_last_colum(file,title,value): data = pd.read_excel(file) row = data.shape[0] if row > 0:原创 2021-02-04 09:13:26 · 1978 阅读 · 0 评论 -
针对小型电商网站分散型sku价格信息的抓取--用到排列组合
常见的大型电商网站如某宝、某东、某马逊、对自己网站的商品spu和sku有严格的分类和编码规则但是一些小型的网站由于自身条件的因素限制,没有能力进行种类繁多的sku命名规划,靠的是商品属性与价格的对照进行计算如今天提到的某网站商品:https://www.evawigs.com/1328-ready-to-ship-4-deep-parting-natural-black-lace-front-human-hair-wig.html网页详情如下图所示该商品共有8个可供选择的属性,这里原创 2021-01-27 17:30:26 · 305 阅读 · 0 评论 -
Python利用socket发送与接收文件001
应用场景:语言Python,利用socket进行文件传输针对windows本地文件D盘主目录下的6个子目录对应6中文件,如 D:\主目录\001\2021-01-01\xxx每个子目录每天会产生一个新的次子目录并附带一些内部文件以当天日期命名如 D:\主目录\002\2021-01-01\xxx.xx,001则产生一个新的次子文件以当天日期命名 如 D:\主目录\001\2021-01-01.xxx,本工具的功能是每天自动的将当天产生的所有文件上传到指定的服务器上(服务端也由soc...原创 2021-01-13 11:44:05 · 430 阅读 · 0 评论 -
The request cannot be completed because you have exceeded your
当我使用YouTube data api v3 查询YouTube视频信息的时候得到如下结果{ "error": { "code": 403, "message": "The request cannot be completed because you have exceeded your \u003ca href=\"/youtube/v3/getting-started#quota\"\u003equota\u003c/a\u003e.", "errors": [ ...原创 2021-01-05 10:44:25 · 1248 阅读 · 0 评论 -
如何破解滑动验证码
本文只针对横向由左向右滑动的验证码目标网站为https://login.aliexpress.com/seller.htm(速卖通-阿里巴巴国际站)def sliding_verification(chrome): # 获取拖拽的滑动验证码块 # 按钮xpath time.sleep(2) slideblock = chrome.find_element_by_xpath('//*[@id="nc_1_n1z"]')原创 2020-12-31 14:44:46 · 1681 阅读 · 8 评论 -
xpath click点击无效怎么办
模拟浏览器点击按钮无效click()和send(Keys.Enter)均没有效果可以尝试一下js点击时间先定位点击位置的js代码(可以通过右键copy--->copy js path获取)然后通过浏览器实例执行execute_script()js = 'document.querySelector("#login-form > div.fm-btn > button").click();'self.chrome.execute_script(js)这种方法技术上原创 2020-12-24 11:34:08 · 2637 阅读 · 0 评论 -
xpath定位标签、xpath选择范围,position
如图所示,ul下一共有7个li子标签1、假如要选取上图中的所有的li标签xpath表达式可以是//ul[@class="menu"]/li2、假如要选取第1个li标签xpath表达式可以是.//ul[@class="menu"]/li[1]3、假如要选取第2、3、4个li标签xpath表达式可以是//ul[@class="menu"]/li[posit...原创 2020-03-11 17:15:55 · 9484 阅读 · 22 评论 -
python3爬虫乱码之请求头‘Accept-Encoding’:br 的问题
当用python3做爬虫的时候,一些网站为了防爬虫会设置一些检查机制,这时我们就需要添加请求头,伪装成浏览器正常访问。header的内容在浏览器的开发者工具中便可看到,将这些信息添加到我们的爬虫代码中即可。‘Accept-Encoding’:是浏览器发给服务器,声明浏览器支持的编码类型。一般有gzip,deflate,br 等等。python3中的 requests包中response...转载 2020-03-11 10:44:13 · 1995 阅读 · 0 评论 -
selenium.common.exceptions.WebDriverException: Message: invalid session id
selenium显示调用webdriver时,运行过程中需要多次打开不同的页面,爆出上面异常,原因是当程序只实例化出一个browser对象时,中途不能关闭它如果关闭,再次启动时需要重新实例化浏览器对象才能继续调用关闭操作为:browser.close()或者browser.quit()...原创 2019-07-18 16:08:54 · 760 阅读 · 0 评论 -
The result of the xpath expression is: [object Attr]. It should be an element
yutube爬虫动态加载,需要用到selenium-webdriver,使用过程中,首先使用find_elements_by_xpath进行批量标签的定位选取,之后使用find_element_by_xpath精细筛选选标签的时候出现上面错误提示,原因是这个webdriver的定位方法和浏览器xpath不一样,不能直接定位到标签的属性需要首先定位到webelement,之后get到...原创 2019-06-17 16:40:04 · 8717 阅读 · 10 评论 -
invalid session id
selenium调用webdriver显示浏览器,打开多重页面,从上一级页面中获取到下一级的地址当请求打开下一级页面,提示 invalid session id无效的 session id,原因:当上一级的数据取完之后,如果保存的是element对象,则当前窗口是不能关闭的,一旦关闭,则无法进一步解析,如果已将对象中的文本提取保存则可正常关闭使用另外,如果希望程序多次调用打...原创 2019-06-19 16:02:15 · 10527 阅读 · 0 评论 -
解决platform_sensor_reader_win.cc(242)错误
pyinstaller打包EXE文件之后,执行爆出大量platform_sensor_reader_win.cc(242)错误看着像是debug级别的解决方法如下:加入:options.add_argument('--log-level=3')class Aliexpress(object): def __init__(self): self.start_...原创 2019-05-21 17:41:48 · 810 阅读 · 0 评论 -
windows下使用phantomjs
PhantomJS 使用了 WebKit内核,是一个真正的布局和渲染引擎,它可以像屏幕截图一样捕获一个web界面from selenium import webdriver#下载phantomjs-----------------#地址:http://phantomjs.org/解压到本地---------复制执行文件的路径# 创建一个phantomjs对象obj = we原创 2018-01-26 15:24:46 · 4587 阅读 · 0 评论 -
爬虫突破封禁的6种常见方法
为何大量网站不能抓取?爬虫突破封禁的6种常见方法在互联网上进行自动数据采集(抓取)这件事和互联网存在的时间差不多一样长。今天大众好像更倾向于用“网络数据采集”,有时会把网络数据采集程序称为网络机器人(bots)。最常用的方法是写一个自动化程序向网络服务器请求数据(通常是用 HTML 表单或其他网页文件),然后对数据进行解析,提取需要的信息。 本文假定读者已经了解如何用代码来抓取一个远程的 URL,...翻译 2018-03-15 19:55:16 · 1968 阅读 · 0 评论 -
scrapy框架动态切换ua
scrapy爬虫防止被禁止 ,动态切换UA1)新建一个middlewares.py文件,内容如下,文件放在与items.py, settings.py所在的文件夹下。[html] view plain copy#!/usr/bin/python #-*-coding:utf-8-*- import random from scrapy.downloadermiddlewares.user...翻译 2018-03-16 11:09:06 · 2768 阅读 · 0 评论 -
scrapy报错之 ‘’Item does not support field:.......“
scrapy 运行报错 does not support field:xxxxxxx究其原因是因为不需要保存字段,所以在item中没有定义field,只是象征性的写了一个title而在spider中用却到了yield item,系统检测出yield出的变量在item中没有提前定义,所以它是拒绝的正确做法是将需要yield的变量定义在item.py中 然后就可正常运行...原创 2018-03-29 17:57:24 · 10544 阅读 · 6 评论 -
microsoft visual c++ 14.0 is required问题解决办法
最近公司台笔记本,需要配置环境,乍得竟然有点忘了5557pip install Scrapy时出错:error: Microsoft Visual C++ 14.0 is required. Get it with “Microsoft Visual C++ Build Tools”: http://landinghub.visualstudio.com/visual-cpp-build-tool...原创 2018-03-21 11:45:20 · 9154 阅读 · 2 评论 -
Scrapy 如何设置settings使用动态UA
Scrapy 自定义settings--简化编写爬虫操作--加快爬虫速度爬虫应该算是数据挖掘的第一步,也是分析数据的基础,更是得出结论的基石。爬虫大到一个团队在维护,小到毕业论文。Python应该算是大家非常喜欢的爬虫语言(理由不用多说都知道的);而scrapy框架应该算是爬虫模块、框架中的佼佼者,今天我们自定义settings.py文件。scrapy项目结构那么我们自定义的就是这个setting...转载 2018-04-09 15:10:35 · 4154 阅读 · 2 评论 -
scrapy报错之:XX Spider.parse callback is not defined
好久没用过scrapy,这两天用到了,写了一个爬虫,今天一运行,竟然报错了,突然一下有点摸不着头脑因为用到了linkextractor了,网上搜了半天也没有类似的问题,报错截图spider部分代码截个图然后item、pipline、settings、middware一路检查过去,发现都没有问题,最后 有点想放弃了,出去厕了个所,回来突然眼前一亮,发现原来是爬虫继承的父类没有改,为避免下次再遇到这种...原创 2018-03-29 11:41:35 · 8486 阅读 · 7 评论 -
scrapy运行报错问题
异常信息:info:crawled 100 pages(at 8 pages/min),scraped 1291 items (at 0 items/min)处理方案:1、看你的xpath到底能不能匹配到你要的元素啊,你可以试试用chrome的一个XPath helper插件2、你要请求的地址和allow_domain里面的冲突,从而被过滤掉。可以停用过滤功能。yield Request(url,...原创 2018-05-17 11:43:21 · 2253 阅读 · 1 评论 -
UnicodeEncodeError: 'gbk' codec can't encode character '\xa0' in position 298290: illegal multibyte
问题详情windows下遇到此问题,简单粗暴解决办法如下加入一行代码oksys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='gb18030')原创 2018-09-20 15:46:03 · 788 阅读 · 0 评论 -
xpath根据内容找标签
根据文本找xpath属性根据内容找标签属性以百度首页为例:输出结果:验证网页:结果正确无误原创 2018-11-02 17:11:09 · 753 阅读 · 0 评论 -
Chrome version must be 70 and 73
说两个问题1、selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PAT原因没有找到webdriver运行程序,路径不对或者根本就没有下载下载地址:https://sites.google.com/a/chromium.org/chromed...原创 2018-12-12 16:34:57 · 6252 阅读 · 0 评论 -
executable may have wrong permissions
selenium.common.exceptions.WebDriverException: Message: '' executable may have wrong permissions. Please see https://sites.google.com/a/chromium.org/chromedriver/home翻译过来:可执行的文件可能有错误的权限原因1:可能是sele...原创 2018-12-13 15:47:42 · 3815 阅读 · 0 评论 -
Selenium support for PhantomJS has been deprecated, please use headless
UserWarning: Selenium support for PhantomJS has been deprecated, please use headless versions of Chrome or Firefox instead warnings.warn('Selenium support for PhantomJS has been deprecated, please u...原创 2018-12-13 15:49:38 · 567 阅读 · 0 评论 -
No module named 'cv2'
执行程序报错No module named 'cv2'解决办法pip install cv2或者pip install opencv-python原创 2019-03-20 13:39:00 · 1522 阅读 · 0 评论 -
urllib与requests的对比
在HTTP相关处理中使用python是不必要的麻烦,这包括urllib2模块以巨大的复杂性代价获取综合性的功能。相比于urllib2,Kenneth Reitz的Requests模块更能简约的支持完整的简单用例。简单的例子: 想象下我们试图使用get方法从http://example.test/获取资源并且查看返回代码,content-type头信息,还有response的主体内容。这件事无论使用转载 2017-11-10 16:01:23 · 7454 阅读 · 0 评论