![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
爬虫
风度翩翩猪肉王子
这个作者很懒,什么都没留下…
展开
-
Selenium+Pyquery+MongoDB爬取网易新闻评论
'''网易新闻的评论实际上没有它所标注的页数这么多'''from selenium import webdriverfrom selenium.common.exceptions import TimeoutExceptionfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support.ui imp...原创 2018-08-05 17:39:49 · 301 阅读 · 1 评论 -
爬取《我就是演员》视频弹幕
目标:爬取《我就是演员》总决赛视频弹幕。方法:找到弹幕所在的url,看该数据Response的是什么类型,再决定采取什么解析方法,最后保存到csv文件中。尝试:我分别点击不同时刻,发现规律,每隔30秒就会出现新的弹幕url,因此只需改变参数即可实现重复抓取。from urllib.parse import urlencodeimport requestsimport reimport ...原创 2018-12-10 19:51:02 · 1011 阅读 · 0 评论 -
破解JS参数加密--百度翻译
点击这里看具体例子转载 2019-01-07 19:21:57 · 792 阅读 · 0 评论 -
Python中的正则表达式
Python中的正则表达式功能在re模块中,使用前需要import re。常用的正则表达式函数如下:1. match()从字符串的起始位置开始匹配第一项。>>> import re>>> print(re.match('book', 'books'))<_sre.SRE_Match object; span=(0, 4), match='boo...原创 2019-03-30 14:08:39 · 122 阅读 · 0 评论 -
Python-正则表达式-天气爬虫-存储到CSV文件
爬取的网址为http://www.tianqihoubao.com/lishi/chengdu/month/201802.html。import csvimport reimport requestsimport timedef urlPool(): '''构建url池''' urlList = [] for i in range(1, 13): ...原创 2019-03-30 16:40:40 · 1174 阅读 · 0 评论 -
Python对json格式数据的操作
Python中json文件处理涉及的四个函数包括:json.dumps()和json.loads()、json.dump()和json.load()。json.dumps()和json.loads()json.dumps()和json.loads()是json格式处理函数(可以这么理解,json是字符串)(1) json.dumps()函数是将字典转化为字符串(2) json.loads...原创 2019-04-14 12:29:49 · 427 阅读 · 0 评论 -
利用from urllib.parse import urlencode构造完整链接URL
我们在做爬虫时,观测到网址变化的规律后,需要对一些参数进行改变,因此我们有必要将链接URL分开表示,将要变化的参数单独提取出来,最后通过from urllib.parse import urlencode构造完整的URL。from urllib.parse import urlencode# 基础URLbaseUrl = 'https://openapi.vmall.com/rms/com...原创 2019-04-14 12:34:22 · 2715 阅读 · 0 评论 -
爬取BOSS直聘网上关于产品经理岗位的相关信息
爬虫心得爬虫步骤:html网页源代码获取目标数据解析数据保存在写解析部分的代码时,为了避免频繁访问url,我们可以将HTML代码保存到txt文件,后面只需要对txt文件中的html代码进行解析,当解析成功后,我们就可以直接对url进行解析了。with open(file.txt, 'a', encoding='utf-8') as f: f.write(data)一、网站分析...原创 2019-04-27 11:54:38 · 603 阅读 · 0 评论 -
爬虫心得
爬虫心得爬虫步骤:html网页源代码获取目标数据解析数据保存在写解析部分的代码时,为了避免频繁访问url,我们可以将HTML代码保存到txt文件,后面只需要对txt文件中的html代码进行解析,当解析成功后,我们就可以直接对url进行解析了。with open(file.txt, 'a', encoding='utf-8') as f: f.write(data)...原创 2019-04-27 11:55:30 · 335 阅读 · 0 评论 -
Python爬虫中文乱码问题
我们在爬虫输出内容时,常常会遇到中文乱码情况(以网址’https://chengdu.chashebao.com/yanglao/19077.html’为例)。在输出内容时,出现如下图的情况:解决爬虫中文乱码的步骤查看网页源代码的head部分的编码:<meta http-equiv="Content-Type" content="text/html; charset=gb2312"...原创 2019-08-04 18:16:35 · 18010 阅读 · 12 评论 -
Python3 中文与url格式编码的转换
我们在爬虫时,url链接中含有中文时,会自动被编码为特殊符号,因此我们需要对中文进行编码操作,同时也有可能涉及到对url编码后的中文进行解码操作。中文转换为url格式from urllib.request import quotex = '角色扮演'print(quote('角色扮演'))输出结果为:%E8%A7%92%E8%89%B2%E6%89%AE%E6%BC%94将编码...原创 2019-08-23 09:32:51 · 2198 阅读 · 1 评论 -
Python存储数据到MySQL
首先安装相关包pip install pymysql创建数据库import pymysqldb = pymysql.connect(host='localhost',user='root', password='123456', port=3306)cursor = db.cursor()cursor.execute("CREATE DATABASE test_db DEFAULT...原创 2019-08-23 09:14:09 · 3618 阅读 · 2 评论 -
猫眼APP抓包——爬虫
我们打开猫眼电影PC端官网,发现只有十几条评论,而绝大多数评论都是在App上,因此我们需要从App上获取评论数据。一般地,我们要获取App数据就必须通过抓包软件进行分析,找到对应的接口,我们找到借口后即可直接对url链接进行访问。如猫眼电影的评论接口为:http://m.maoyan.com/mmdb/comments/movie/电影代号.json?v=yes&offset=1...原创 2018-12-01 15:42:58 · 2652 阅读 · 1 评论 -
Requests + Pyquery下载图片
选取斗图网的url下载图片。import osimport requestsfrom pyquery import PyQuery as pqheaders = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0...原创 2018-08-05 19:24:07 · 657 阅读 · 0 评论 -
更换ip+代理设置
为什么要换ip呢?因为在爬虫过程中,一些网站会检测你的ip访问网站的频率,如果频率高了的话,网站会封ip,迫使你需要进行登陆操作,也就是常说的反爬虫。不断地更换ip,就可以避免爬虫时的登陆操作。西刺免费代理,该网站提供了一些免费代理使用。代码测试网站(http://httpbin.org/get)访问该网站可以得到请求的相关信息。‘origin’字段就是客户端的ip,我们可以根据它来判...原创 2018-08-17 08:57:26 · 2463 阅读 · 0 评论 -
从ip代理池ProxyPool中获取一个可以ip
代理池存储在Redis数据库中,以Web API形式随机获取一个可用代理import requestsPROXY_POOL_URL = 'http://localhost:5555/random' # Web形式def get_proxy(): # 获取代理函数 try: response = requests.get(PROXY_POOL_URL)...原创 2018-08-17 11:21:45 · 753 阅读 · 0 评论 -
Selenium+iframe准确定位元素
简单介绍我们发现该网站有两个框架: 网页代码如下所示: 我们发现iframe对应着单独的一个框架,因此我们定位元素时,要判断该元素有没有嵌套在iframe框架中。程序示例以天猫登陆界面为例,网址https://login.tmall.com/我们选择密码登陆,而不是二维码扫描登陆。因此,需要模拟鼠标点击箭头所在位置。现在界面所示为密码登陆界面。此...原创 2018-08-17 11:45:16 · 4882 阅读 · 0 评论 -
selenium之 定位以及切换frame(iframe)
更多关于python selenium的文章,请关注我的专栏:Python Selenium自动化测试详解总有人看不明白,以防万一,先在开头大写加粗说明一下:frameset不用切,frame需层层切!很多人在用selenium定位页面元素的时候会遇到定位不到的问题,明明元素就在那儿,用firebug也可以看到,就是定位不到,这种情...转载 2018-08-21 21:14:42 · 315 阅读 · 0 评论 -
Python代码自动打开App
1. 配置运行Appium客户端,找到端口,这里是4723。 首先 pip install Appium-Python-Client,这样才能进行from appium import webdriver。接着,我们要找到四个参数platformName, deviceName, appPackage, appActivityplatformNameAndroiddev...原创 2018-09-10 11:54:17 · 9226 阅读 · 0 评论 -
Appium Python API 中文版
Appium Python API 中文版 Appium_Python_Api文档1.contextscontexts(self): Returns the contexts within the current session. 返回当前会话中的上下文,使用后可以识别H5页面的控件 :Usage: driver.contexts用法 driver.co...转载 2018-09-10 14:41:40 · 3346 阅读 · 0 评论 -
mitmdump抓取App数据
以爬取腾讯新闻App新闻评论为例。将手机用数据线连接上电脑,打开调试。首先通过Charles抓包分析请求链接和响应的内容。注意:腾讯新闻上的评论是嵌套字典的列表,我们需要进行处理,提取出列表中的字典。代码展示def response(flow): url = 'https://r.inews.qq.com/getQQNewsComment?' # 评论所在的链接(...原创 2018-09-10 22:07:26 · 3306 阅读 · 0 评论 -
Python 异步加载XHR数据抓取——GET与POST请求方式对比
对于有的网页,我们滑动滚轮或者点击下一页,我们发现网址url没有发生变化,我们称这些网页为动态网页。因此,我们需要F12开发者工具,选中Network--XHR不断滑动滚轮或者点击下一页,我们就会发现网页中的内容就隐藏在XHR里面。但要注意网页的请求方式是GET还是POST。下面以今日头条图片网页和美团外卖评论网页作为对比进行分析。注意:所有的url都是XHR下的链接,去掉多余的参数。...原创 2018-11-21 17:22:13 · 12826 阅读 · 0 评论 -
爬取饿了么的商家+评论数据
该地附近的商家信息如图所示:现在我要抓取首页的所有商家信息(商铺名、评分等级、配送信息等),如果提示要查看更多商家,请登录。为了测试,我们就可以人为登陆。现在,当我的鼠标滚轮不断向下滑动时,发现商家信息不断增加,但网址没有发生变化,这就是动态页面。按F12,打开开发者工具选项,F5刷新,鼠标不断向下滚动,我们发现控制台的网址在不断增加。一般地,动态页面的网址出现在JS或者XHR选项工具栏,不断...原创 2018-11-27 17:21:51 · 6111 阅读 · 9 评论 -
Python将中文写入CSV文件编码问题
目标:将中文数据存入到CSV格式的表格中。方法:在创建csv表格时,预先设置编码格式。如果设置为utf-8,则会出现如图所示乱码。如果没有设置编码格式,运行Python则会报错:“UnicodeEncodeError: ‘gbk’ codec can’t encode character ‘\U0001f923’ in position 51: illegal multibyte sequ...原创 2018-11-28 17:03:00 · 3399 阅读 · 1 评论 -
Pandas读写MySQL数据
利用Pandas读MySQL数据# 导入相关库import pandas as pdfrom sqlalchemy import create_engine# 初始化数据库连接,使用pymysql模块# MySQL的用户:root, 密码:123456, 端口:3306,数据库:testengine = create_engine('mysql+pymysql://root:1234...原创 2019-08-23 14:29:34 · 256 阅读 · 0 评论