爬虫
关于爬虫与反爬虫
赶在日落之前
夫天地者,万物之逆旅也;光阴者,百代之过客也。而浮生若梦,为欢几何。
展开
-
python 正则匹配字符串中括号[]中内容
import restring = '已在[东营港]起航'data = re.findall("\[(.*?)\]",string, re.I|re.M)[0]print(data)原创 2021-05-18 11:13:47 · 4685 阅读 · 0 评论 -
Python爬虫:中国结算,关于新开股票账户数等参数数据的爬取
1数据来源:http://www.chinaclear.cn/zdjs/tjyb1/center_tjbg.shtml2获取内容 :09到至今的主要指标概览数据内容3可参考代码,直接用就行import requestsimport reimport datetimedef get_month_range(start_day,end_day): months = (end_day.year - start_day.year)*12 + end_day.month - start_原创 2020-11-20 10:09:12 · 812 阅读 · 0 评论 -
Python 爬虫http协议详解
请求头参数及说明:Accept表示浏览器支持的 MIME 类型;MIME的英文全称是 Multipurpose Internet Mail Extensions(多功能 Internet 邮件扩充服务),它是一种多用途网际邮件扩充协议,在1992年最早应用于电子邮件系统,但后来也应用到浏览器。text/html,application/xhtml+xml,application/xml都是 MIME 类型,也可以称为媒体类型和内容类型,斜杠前面的是 type(类型),斜杠后面的是 subty..原创 2020-08-27 15:15:40 · 274 阅读 · 0 评论 -
蘑菇代理调用函数,可以申请试用,给你个url,然后直接用我写好的函数
def proxy_api_get():#下面连接写你的会员url,我的给去掉了 targetUrl = "" resp = requests.get(targetUrl) if resp.status_code == 200: try: b = json.loads(resp.text) data = b['msg'] for proxy in data: p.原创 2020-08-04 11:22:40 · 291 阅读 · 0 评论 -
Python 爬取新浪财经7x24
以前我总是想着自己写代码,对那些只知道复制用别人代码的嗤之以鼻,后来几次查到现成的直接复制粘贴拿来用,握草,那感觉:import requestsimport jsonimport timeimport reimport pymssqlimport pymysqlimport datetimeimport randomfrom requests.adapters import HTTPAdapterdef conn(): connect = pymysql.c..原创 2020-07-02 14:54:14 · 2911 阅读 · 9 评论 -
Python 爬金十数据
话不多说,直接上能用的代码import requestsimport datetimeimport pymssqlimport pymysqlfrom requests.adapters import HTTPAdapterdef conn(): connect = pymysql.connect(host='', user='', password='', database='',charset='utf8') if connect: print.原创 2020-07-02 14:47:33 · 2493 阅读 · 0 评论 -
解决python UnicodeDecodeError类型的错误
读取文件时候经常会遇到诸如此类的问题:UnicodeDecodeError: 'gb2312' codec can't decode bytes in position 2-3: illegal multibyte sequenceUnicodeDecodeError: 'utf-8' codec can't decode bytes in position 2-3: illegal mu...原创 2020-03-17 15:55:39 · 1626 阅读 · 0 评论 -
爬虫 requests.get Read timed out. (read timeout=5) 已解决
利用requests库自带封装的办法,一般超时我们不会立即返回,而会设置一个三次重连的机制。max_retries 为最大重试次数,重试3次from requests.adapters import HTTPAdapterimport requestss = requests.Session()s.mount('http://', HTTPAdapter(max_retries=3...原创 2020-03-05 10:15:30 · 6926 阅读 · 1 评论 -
Python eval 函数使用报错 name 'false' is not defined 已解决
今天遇见爬虫处理返回数据报错,结果如下:后来查看打印返回来的数据html = 'try{jQuery0({"result":{"status":{"code":0,"msg":"OK"},"timestamp":"Wed Mar 04 10:48:52 +0800 2020","data":{"zhibo":[],"focus":[],"top":{"list":[],"html":...原创 2020-03-04 11:52:31 · 11594 阅读 · 0 评论 -
Python 爬虫 urllib.error.URLError的解决办法
1首先查找错误原因:当遇到这种报错,首先从两方面入手:1,网络波动,即突然断网,无法连接网络2,连接不到特定的服务器或者对方服务器不存在2解决办法:1,加上对错误的异常处理,重新请求访问 try: res1 = urllib.request.urlopen(request_1) ...原创 2020-01-21 13:27:48 · 1835 阅读 · 0 评论 -
爬取企名片网址数据
目标网址:https://www.qimingpian.cn/finosda/project/pinvestmentPython代码import execjsimport base64import jsonimport requestsdef decrypt(encrypt_data): ctx = execjs.compile(open('test.js').rea...原创 2019-12-30 15:28:19 · 1023 阅读 · 0 评论 -
python 爬取有道及破解JS思路
第一步,构建基础代码:import requests #导入requests包import jsondef Youdao(word): # word = "'"+word+"'" url = 'http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule' Fro...转载 2019-12-24 15:05:34 · 281 阅读 · 0 评论 -
python利用fiddler抓取微信公众号文章及标题(简单易懂)
1安装好fiddler配置好安全证书,这一步很简单就是安装,自己问度娘2登录微信客户端(电脑),打开公众号滑动,查看响应信息,主要要过滤一下,排除干扰mp.weixin.qq.com;3可以点开看返回来的数据这些都是,点开查看传入的参数4 构建爬虫import requestsimport timeimport jsonimport pymysql...原创 2019-04-29 10:19:30 · 3362 阅读 · 3 评论 -
pyspider 的测试和使用(Windows) 参考简书Py_Explorer用户和博客SiHann两位写的
1安装pip install pyspider2安装PhantomJS 链接http://phantomjs.org/download.html下载好解压,将其放在bin目录下(我的是在D:\python\Library\bin)3可能会遇见错误1python3.7不兼容pyspider问题(出现占用关键字的问题)Python 3.5中引入了async和a...原创 2019-04-23 14:59:35 · 231 阅读 · 0 评论 -
获取豆瓣电影json数据
from urllib import requestfrom urllib import parseimport osdef load_page(url): """发送请求加载页面""" headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537...原创 2019-04-09 12:19:30 · 3921 阅读 · 0 评论 -
爬虫请求页面状态码总结(response.getStatusCode())
200表示请求成功303表示重定向400表示请求错误401表示未授权403表示禁止访问404表示文件未找到500表示服务器错误原创 2019-04-08 11:19:59 · 3282 阅读 · 2 评论 -
爬虫scrapy-redis框架关于对redis的详解
scrapy-redis顾名思义,主体还是是 redis 和 scrapy 两个库,redis扮演着不可替代的工作,这里对redis进行详尽的解释,来帮助理解scrapy-redis,这对于学习分布式爬虫意义非凡。Redis 是一个开源的,内存数据库,它可以用作数据库、缓存和消息中间件。它支持多种类型的数据结构:字符串,哈希,列表,集合,有序集合等 文档:http://www.redis.cn...原创 2018-08-15 09:55:04 · 977 阅读 · 0 评论 -
爬虫怎样绕过验证码?
1,cookie登录利用cookie的特性:cookie会保持较长的时间,来避免用户频繁登录cookie一般由前端开发用js生成,可以利用抓包尝试下破解,不过这个难度有点高,不过破解js本就是爬虫必须直面面对的2OCR库里的tesseract(光学文字识别)可以解决大多数的传统验证码软件tesserract-ocr先安装,然后安装pytesserract类库注意:1Wind...原创 2020-01-15 09:38:59 · 14645 阅读 · 2 评论 -
scrapy-redis 框架
scrapy-redis简介:Scrapy-redis 是为了更方便地实现 Scrapy 分布式爬取,而提供了一些以 redis 为基础的组件(仅有组件)。主体还是是 redis 和 scrapy 两个库,Scrapy-redis 像胶水一样,把这两个插件粘结了起来。scrapy-redis特点:1能实现分布式爬取2可实现去重3持续性爬取,可实现增量式爬虫4遵守 Rule 规则,可以实...原创 2018-08-14 21:50:22 · 1239 阅读 · 0 评论 -
爬虫入门讲解(用urllib库爬取数据 )
首先介绍说明什么是爬虫?是一种按照一定的规则,自动地抓取互联网信息的程序或者脚本。所谓网页抓取,就是把URL地址中指定的网络资源从网络流中读取出来,保存到本地。 在Python中有很多库可以用来抓取网页写过爬虫的同学都知道,无论什么爬虫大体思路都是相同的,都是要分析网络请求地址,模拟发送请求,然后解析返回的数据,最后保存相应的信息爬虫分类通用爬虫(General Purp...原创 2018-08-11 18:38:06 · 4180 阅读 · 0 评论 -
正则总结
(1)re.match() 能够匹配出以xxx开头的字符串import reresult = re.match('taobao','taobao.com')print(result.group())'taobao'(2) python常用字符几个简单测试:全都可以匹配出来import reret = re.match(".","a")print(ret.gr...原创 2018-08-10 21:19:51 · 335 阅读 · 0 评论 -
middlewares中自己设置UA的切换,随机更换IP地址,以及对#selenium 动态页面的爬取
from scrapy import signalsfrom fake_useragent import UserAgentfrom scrapy.http import HtmlResponseimport randomfrom selenium import webdriver#定义UA的切换class UserAgentMiddleware(object): def ...原创 2018-08-04 17:58:51 · 7709 阅读 · 2 评论 -
用selenium 模拟登录知乎
"""level 2:4、知乎网站的登录"""from selenium import webdriverfrom selenium.webdriver.common.action_chains import ActionChainsfrom time import sleepdriver = webdriver.Chrome(executable_path='C:\Progr...原创 2018-07-27 09:42:08 · 799 阅读 · 0 评论 -
scrapy遇到的常见错误
(1)Unknown command: crawl原因:没有cd到项目根目录,因为crawl会去搜搜cmd目录下的scrapy.cfg,找不到就会报错 (2)ModuleNotFoundError: No module named 'JobSpider.settings'原因:从spiders没有自动生成爬虫文件,我这里是从外面拖进去的,最初生错了位置,最有力的解决方式就是删除项目...原创 2018-08-01 11:05:12 · 1061 阅读 · 0 评论 -
BeautifulSoup4 提取数据爬虫用法详解
Beautiful Soup 是一个HTML/XML 的解析器,主要用于解析和提取 HTML/XML 数据。 它基于 HTML DOM 的,会载入整个文档,解析整个 DOM树,因此时间和内存开销都会大很多,所以性能要低于lxml。 BeautifulSoup 用来解析 HTML 比较简单,API非常人性化,支持CSS选择器、Python标准库中的HTML解析器,也支持 lxml 的 XML解...原创 2018-07-25 20:12:18 · 8646 阅读 · 1 评论 -
对内涵段子正则的提取
内涵段子正则爬取:"""内涵段子爬虫https://www.neihan8.com/article/index.html"""from urllib import request,parsefrom urllib import errorimport chardetfrom lxml import etreeimport csv,string,reimport csv...原创 2018-07-25 19:46:47 · 2781 阅读 · 0 评论 -
BeautifulSoup爬取数据演示
BeautifulSoup爬取数据推荐操作简单,但是相比于xpath和正则匹配数据太慢,不建议使用 案例一: 双色球历史数据爬虫,爬取期数,开奖时间,红色球,蓝色球,一等奖,二等奖等信息from urllib import request,parsefrom urllib import errorimport chardetfrom lxml import etr...原创 2018-07-25 19:37:24 · 679 阅读 · 1 评论 -
常见正则表达式
常见正则表达式:匹配中文字符的正则表达式: [u4e00-u9fa5] 评注:匹配中文还真是个头疼的事,有了这个表达式就好办了匹配双字节字符(包括汉字在内):[^x00-xff]评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)匹配空白行的正则表达式:ns*r评注:可以用来删除空白行匹配HTML标记的正则表达式:<(S*?)[^>...原创 2018-07-21 10:16:56 · 173 阅读 · 0 评论 -
爬虫出现空列表或者长度为0是怎么回事?
今天来总结一下在爬虫遇到的特殊情况,利用正则或者xpath来匹配提取数据,偶尔会发现可以找到这个对象,却无法提取它的下一阶层的数据,这是怎么一回事?自己分析结果有以下几种:(1)自己的匹配写错了,怎么可能,我再三检查,对的不能再对了,排除这种情况,毕竟是本宝宝写的,谁还没有点小自信了。(2)可能是User-Agent浏览器版本不兼容,遇到这种情况要注意了,先检查一下自己爬取的数据,看...原创 2018-07-20 15:54:15 · 20171 阅读 · 7 评论 -
用lxml的xpath演示爬虫提取双色球开奖数据的标题,url,浏览数,日期内容 另外 附上正则爬取法
人狠话不多,直接上源码from urllib import request,parsefrom urllib import errorimport chardetfrom lxml import etreeimport csvdef shuangseqiu(url): headers = {"User-Agent": "Mozilla/5.0 (Windows N...原创 2018-07-19 11:07:48 · 489 阅读 · 0 评论 -
UnicodeEncodeError: ‘ascii’ codec can’t encode characters in position 10-12: ordinal not in ran的解决办法
示例:url = 'https://baike.baidu.com/item/比特币/4143690'url = parse.quote(url,safe=string.printable)response = request.urlopen(url)print(response.read())原创 2018-07-19 11:50:14 · 2661 阅读 · 2 评论 -
分享一个用xpath能爬取所有百度贴吧图片的爬虫代码(简单粗暴,源码附上) 附加正则爬取法(最后面添加福利,可以爬取头像吧所有图片,楼主爬了小一万张)
""" level1: 贴吧图片爬虫 输入贴吧名,起始页数,终止页数,爬取帖子中的图片,保存到images文件夹下,图片命名 贴吧名_xx.jpg"""from urllib import requestfrom urllib import parsefrom urllib import errorfrom lxml import etreeim...原创 2018-07-20 10:38:37 · 654 阅读 · 0 评论 -
用lxml的xpath演示爬虫提取笑话集网页其中的标题,url,浏览数,日期,笑话内容
人狠话不多,直接上源码from urllib import request,parsefrom urllib import errorimport chardetfrom lxml import etreeimport csv,stringdef jokeji(url,beginPage, endPage): for page in range(beginPage, e...原创 2018-07-19 11:03:32 · 491 阅读 · 0 评论 -
用lxml的xpath演示爬虫提取其中糗事百科网页的用户头像,作者,帖子内容,点赞数和评论数的提取,并且把提取的数据存入csv
人狠话不多,直接上源码(爬虫小白,大神勿喷)"""糗事百科爬虫"""from urllib import request,parsefrom urllib import errorimport chardetfrom lxml import etreeimport csvdef qiushibaikeSpider(url, beginPage, endPage): ...原创 2018-07-18 20:32:10 · 509 阅读 · 0 评论