爬虫
文章平均质量分 51
laufing
944582529@qq.com 邮箱,用于交流学习
展开
-
基于Python的租房数据爬取及数据分析
爬取+分析需求分析数据抓取流程图代码数据分析可视化展示需求分析需要爬取各大城市的各个区域的租房信息,并作出相应的数据分析展示。用户需要手动输入城市,如zz、wh数据抓取流程图代码import requestsimport timefrom lxml.etree import HTML, parsefrom pymongo import MongoClientimport sysimport reimport randomimport redisimport hashlib原创 2021-12-03 10:42:41 · 2663 阅读 · 2 评论 -
前后端的会话保持
会话保持为什么要会话保持为什么要会话保持因为HTTP是无状态的,请求端、响应端[^1]xxx原创 2021-10-25 10:26:42 · 730 阅读 · 0 评论 -
js混淆--pending
pending updateauthor:laufing原创 2021-10-24 19:47:11 · 287 阅读 · 0 评论 -
python框架scrapy项目流程
动态页面请求流程总结并发的爬虫协程整体代码提取码:i066流程总结创建一个项目>scrapy startproject Lauf>cd Lauf>scrapy genspider lauf domain#要进入项目中,才可以执行如下:scrapy crawl lauf定义数据结构#Lauf>items.pyclass LaufItem(scrapy.Item): name = scrapy.Field() price = scrapy.Fiel原创 2021-10-24 18:32:46 · 123 阅读 · 0 评论 -
linux定时任务
定时执行任务crontab创建项目crontab定时任务usage: crontab [-u user] file crontab [ -u user ] [ -i ] { -e | -l | -r } (default operation is replace, per 1003.2) -e (edit user's crontab) 编辑定时任务 -l (list user's crontab) -r (delete user's crontab) -i (prompt before原创 2021-10-24 15:53:44 · 180 阅读 · 0 评论 -
js里的困惑
~[] //return -1a ? b : c ? d : e ? f : g //根据运算优先级等价于 a ? b : (c ? d : (e ? f : g ))//优先级如下 typeof > != > 三目运算符"undefined" != typeof window ? window : r//return window对象//异常对象new Error("xxxx")new RegExp('^abc')...原创 2021-10-24 07:18:08 · 249 阅读 · 0 评论 -
爬虫---豆瓣
模拟登录豆瓣的问题滑块验证码滑块验证码验证码在iframe子页面,需要browser.switch_to.frame()背景图 豆瓣页面中可以加载到,但是单独请求src就拿不到响应! 为什么?滑块到缺口处的距离,是固定的。...原创 2021-10-22 00:32:18 · 663 阅读 · 0 评论 -
爬虫技术----爬取智联
登录地址使用技术selenium驱动浏览器模拟登录待更新。。。。原创 2021-09-09 20:54:26 · 135 阅读 · 0 评论 -
selenium模拟登录----续
完整项目代码from selenium.webdriver import Chrome #导入Chrome驱动from selenium.webdriver import ActionChainsimport timeimport randomimport base64from PIL import Imageimport ioimport numpy as np#模拟人滑动滑块def getTracks(distance, delay=2): """ dis原创 2021-08-23 19:05:31 · 884 阅读 · 0 评论 -
selenium模拟登录示例
登录blibliselenium自动化测试工具登录页面没有iframe技术,所以不用switch_to.frameimport selenium#package:#common #exceptions #webdriver #chrome #firefox #ie #opera #phantomjs #edge #android #safari #common #action_chains#导入we原创 2021-08-21 17:12:25 · 6151 阅读 · 0 评论 -
忙里偷闲----爬取google 翻译
需求分析功能实现:输入英文,得出中文翻译输入中文,得到英文翻译Google翻译地址URL:https://translate.google.cn/实现环境编程语言:python3.6requests:2.25.1参考地址页面分析静态页面,还是动态?-----动态 xhr所以需要找到真实请求的URL分析url结构输入英文------>翻译为中文https://translate.google.cn/?sl=en&tl=zh-CN&text=credent原创 2021-08-16 00:19:20 · 841 阅读 · 0 评论 -
爬取图片、视频
图片、音频、视频对应的url ,返回的二进制数据,只需将响应写入二进制文件,即可图片示例必须是真实的图片链接url = ‘https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fhbimg.b0.upaiyun.com%2F05fb75f57c3fdac4a0a2a43725ab23915007ea457dd5-CRYKef_fw658&refer=http%3A%2F%2Fhbimg.b0.upaiyun.com&app=2002&原创 2021-06-07 18:52:35 · 486 阅读 · 0 评论 -
训练图片验证码
获取图片某验证码API:https://login.anjuke.com/general/captcha?timestamp=15580192349965467def get_patch(start,end): """ 抓取图片验证码 start:起始编号 end:结束编号 """ #创建目录 if not os.path.exists('./pics'): os.mkdir('./pics')原创 2021-06-03 16:08:13 · 252 阅读 · 0 评论 -
项目案例分析
需求分析题目:爬取裁判文书网(https://wenshu.court.gov.cn/),包含“宇通客车股份有限公司”涉及的案号,发布日期,案由,案件名称,链接等信息。分析思路快速开发:使用selenium+Chrome+mongodb的解决方案为了能快速拿到数据,选择使用selenium+Chrome来抓数据。打开网站主页,在搜索框输入搜索内容,点击搜索时,提示需登录,所以需注册一个账号,且使用selenium实现账号的登录。登录后,再输入搜索内容“宇通客车股份有限公司”,点击搜索,就会原创 2021-06-03 00:38:04 · 367 阅读 · 1 评论 -
selenium常见问题
No such window加延时,让浏览器加载好数据原创 2021-06-02 22:54:57 · 89 阅读 · 0 评论 -
pymongo.errors.DuplicateKeyError:E11000 解决方案
原因在插入mongodb时,插入的是同一个字典对象字典对象字典对象,所以 _id重复,报错!解决只需每次创建文档字典时,都新建一个字典对象即可原创 2021-06-02 21:30:39 · 380 阅读 · 0 评论 -
插件的使用
插件下载极简插件xpath helper打开一个网页点击插件输入xpath表达式proxy_SwtichOmega代理切换配置fiddler原创 2021-06-02 07:33:24 · 132 阅读 · 0 评论 -
移动端数据抓取
移动端,一搬比PC 端反爬弱抓取方法1.pc端F2点击手机,模拟模拟有道的手机appPC端反爬严重,可以考虑是否有移动端,一般易于抓取2. 手机+fiddler手机和电脑在相同的网络配置手机打开wifi ,点击wifi,点击代理>手动输入ip,自己电脑的ip> ipconfig输入port, 8888手机浏览器:http://ip:8888下载证书,重命名配置fiddler重启fiddler手机打开APP...原创 2021-05-31 22:53:41 · 374 阅读 · 0 评论 -
fiddler 抓包工具
Fiddler抓包工具同浏览器F12 抓包效果一致,记录所有的http通讯安装Fiddler软件提取码:duuh1.安装,并搜索出来,执行2.配置Tools>Options>HTTPS > 勾选 decrypt https & 点击Actions,生成证书重新启动fiddler还抓不到?浏览器安装插件 SwitchyOmega...原创 2021-05-31 20:52:44 · 113 阅读 · 0 评论 -
机器视觉与tesseract
OCRoptical character recognition 光学字符识别原创 2021-05-31 13:49:48 · 166 阅读 · 1 评论 -
使用redis_key实现分布式爬虫
1.建立scrapy项目2. 配置settings.py使用scrapy_redis 配置调度器、去重机制、redis、指纹等3. 重写爬虫文件from scrapy_redis.spider import RedisSpiderclass MySpider(RedisSpider): #start_urls redis_key = "tencent:spider"原创 2021-05-31 11:47:11 · 145 阅读 · 0 评论 -
分布式爬虫的搭建
招聘网站的抓取:https://careers.tencent.com/search.html1.页面分析查看网络–响应、预览动态页面2. check ajax 请求动态地址:https://careers.tencent.com/tencentcareer/api/post/Query?timestamp=1622297360154&countryId=&cityId=&bgIds=&productId=&categoryId=&parentCa原创 2021-05-29 22:12:56 · 294 阅读 · 0 评论 -
分布式 --爬虫
定义使用多台机器共享一个请求队列,同时爬取一个项目,且不重复抓取。场景:需要大量的数据需多台服务器一定的带宽用途:1.爬虫工程师2.后端开发、数据分析、机器学习等的附加技能普通的scrapy不支持分布式爬取分布式爬取分布式爬取分布式:scrapy 调度器只能维护本身的请求队列,无法共享,所以无法实现分布式解决:重写scrapy 的调度器 --scrapy_redissudo pip3 install scrapy_redis分布式的流程scrapy_redi原创 2021-05-29 19:30:26 · 98 阅读 · 0 评论 -
scrapy中间件----下载器中间件
作用下载器中间件,实现请求的包装User-Agent池发少量的请求时:settings.py:USER_AGENT = " XXX"DEFAULT_REQUEST_HEADERS = { “User-Agent”:xxxx}固定的爬虫文件中:yield scrapy.Request(url=,meta={},callback=,headers={},cookies={})包装每个请求#middlewares.py#包装User-Agentfrom fake_useragent i原创 2021-05-29 18:19:22 · 124 阅读 · 0 评论 -
scrapy多个页面的抓取----猫眼电影
创建项目scrapy startproject Maoyancd Maoyanscrapy genspider maoyan maoyan.com原创 2021-05-29 11:15:18 · 261 阅读 · 0 评论 -
scrapy数据持久化
# MySQL1.建立数据库、表2.定义管道类原创 2021-05-26 23:43:36 · 119 阅读 · 0 评论 -
scrapy 配置文件
执行流命令行启动爬虫scrapy crawl myspiderscrapy 引擎首先找到爬虫文件,拿到第一个要爬取的url将该url 交给调度器,维护请求队列,然后请求交给引擎,引擎交给下载器,下载器发送请求拿到响应,返回给引擎,引擎交给爬虫文件爬虫文件解析数据这里的xpath返回selector对象列表获取数据内容,如下:def parse(self, response): item = {} #响应对象,直接.xpath -->[selecto原创 2021-05-11 23:21:33 · 345 阅读 · 0 评论 -
selenium模拟登录 练习
邮箱qqurl = "https://mail.qq.com"""" 使用selenium模拟登录qq邮箱 https://mail.qq.com"""from selenium import webdriverimport time#open browserbrowser = webdriver.Chrome()browser.maximize_window()#get pagebrowser.get("https://mail.qq.com")#give i原创 2021-05-11 15:33:06 · 153 阅读 · 0 评论 -
scrapy框架
简介python实现的,抓取网络数据的爬虫框架,使用Twisted异步网络库 处理网络通讯可以高效的完成数据的抓取–开发效率–抓取效率安装:linux, sudo pip3 install Scrapywin, python -m pip install Scapywindows安装后ipython 导入:import scrapyattrs包版本的问题python -m pip install attrs==19.3.0scrapy 结构下载器中间件,拦截请求,包装请求蜘蛛原创 2021-05-09 17:51:02 · 97 阅读 · 0 评论 -
selenium执行js
浏览器对象执行jsbrowser.execute_script(“console.log()”)#滚动条 拉到最下面,加载所有数据from selenium import webdriver#open the browserbrowser = webdriver.Chrome()browser.maximize_window()#get pagebrowser.get("https://www.jd.com")#下拉browser.execute_script("window.scro原创 2021-05-09 16:44:47 · 192 阅读 · 0 评论 -
selenium之iframe
iframe之子页面如下的页面,是两个页面的嵌套嵌套嵌套browser.find_element_by_xxx("")只能在外层查找节点对象那怎么匹配 iframe 内的子页面元素?—切换到iframe内browser.switch_to.frame(iframe_node)browser.switch_to.frame(id|name)输入 iframe 的id或者name 值案例模拟登录豆瓣网站分析为嵌套页面关键:找到 iframe 节点,切换进去""" se原创 2021-05-09 15:46:39 · 733 阅读 · 0 评论 -
selenium切换句柄
无头浏览器from selenium import webdriver#创建功能对象options = webdriver.ChromeOptions()options.add_argument("--headless")#无头浏览器browser = webdriver.Chrome(options=options)移动鼠标from selenium import webdriver#导入鼠标事件类from selenium.webdriver import ActionChain原创 2021-05-09 12:28:45 · 837 阅读 · 0 评论 -
selenium+browser爬虫实战
浏览器对象from selenium import webdriver#浏览器对象browser = webdriver.Chrome()browser常用方法browser.get(url) #地址栏输入地址,并确认browser.quit() #关闭浏览器browser.close() #关闭文档页面browser.maximize_window() #浏览器最大化browser.page_source #最终渲染的页面源码browser.page_source.find("原创 2021-05-09 11:44:16 · 1602 阅读 · 0 评论 -
python的包问题
自定义的包python查询模块pycharm 运行项目示例python查询模块当前目录下查找系统路径中查找sys.path中查找pycharm 运行项目pycharm 从项目中检索所有的自定义包自定义包自定义包所以自定义的包自定义的包自定义的包都可以找到pycharm 运行django 项目:python3 manage.py runserver#本身就是在项目的根目录下,运行的#其他的包里的模块,只导入#包:#__init__.py#无主程序#这样的文件夹而一旦自己在原创 2021-05-06 10:31:52 · 80 阅读 · 0 评论 -
selenium+brower爬虫准备
强大的爬虫组合selenium安装PhantomJS组合方式selenium开源的、web自动化 测试工具测试web 系统的功能测试web系统的兼容性(不同的os+brower)通过指令指令指令操控浏览器,必须与第三方浏览器结合使用安装#linux sudo pip3 install selenium#winpython -m pip install seleniumPhantomJS无界面浏览器—无头浏览器在内存中加载页面,更加的高效用于自动化测试,网络爬虫等组合方原创 2021-05-05 23:43:58 · 351 阅读 · 0 评论 -
爬虫---多线程
多线程爬虫使用场景队列避免阻塞多线程线程锁使用场景多进程:CPU密集型,充分利用计算机的多核,程序并行执行并行执行并行执行,即同时执行,异步独立多线程:IO密集型,如网络IO,磁盘IO。对线程时,由于python GIL,使得某一时刻只能有一个线程在执行,多线程之间并发执行并发执行并发执行,即一段时间内有两个或两个以上的程序执行。爬虫属于IO密集型:发送请求,等待响应—网络IO解析响应,存储数据—本地IO所以使用多线程爬虫,可以极大的提高效率队列多线程从队列中拿url,请求,解析原创 2021-05-05 22:52:34 · 410 阅读 · 0 评论 -
Mongodb--磁盘非关系数据库
Mongodb简介二级目录简介数据以key-value键值对形式,存储于磁盘的,非关系数据库数据库–>集合–>json 文档 ,数据类型单一基于分布式的文件存储广泛应用于web数据存储官网地址文档手册下载地址二级目录...原创 2021-04-29 14:41:00 · 122 阅读 · 0 评论 -
项目:爬取电影信息+数据分析+可视化
小项目需求分析技术分析系统设计需求分析输入一个电影的名字:系统可以展示该电影的信息+评分词云可视化展示评论信息技术分析开发语言:python3获取数据:requests + lxml +xpath + json数据存储:mongodb可视化:jieba + wordcloud + matplotlib系统设计...原创 2021-04-28 08:32:49 · 1993 阅读 · 0 评论 -
常见问题点
问题点响应解码错误响应解码错误有些页面虽然是utf-8编码的,但是在使用utf-8解码的时候,却报错,说无法解码这属于反爬机制:故意在页面中加入一些无法解码的字符解决方式:"""#解码错误时,严格报错1.res.content.decode("utf-8","strict")#解码错误时,忽略2.res.content.decode("utf-8","ignore")#解码错误时,替换反斜杠3.res.content.decode("utf-8","backslashreplace原创 2021-04-27 16:17:36 · 236 阅读 · 0 评论 -
ajax动态加载数据的抓取
ajax数据特点二级目录三级目录特点查看页面源代码,无数据局部请求加载数据,更新局部页面看:requests响应内容中是否有数据二级目录三级目录原创 2021-04-27 01:03:13 · 243 阅读 · 1 评论