python爬虫
这里分享一些python爬虫方面的知识,以及自己的学习笔记!
程序猿玖月柒
喜欢IT,喜欢编程,希望可以在此找到一些志同道合的朋友。(也喜欢她吼吼吼)
展开
-
短视频爬虫
import requestsimport jsondef short_video(): # 1.构造start_url start_url = "https://www.ku6.com/video/feed?pageNo=0&pageSize=40&subjectId=76" headers = { "User-Agent": "...原创 2019-12-28 17:06:48 · 1572 阅读 · 2 评论 -
小说爬虫
因为最近几个小伙伴遇到了一些小问题,爬小说有乱码,或者不成功的情况,所有今天上午特意写了一个简单的顶点的小说爬虫。这里做了简单的演示所以只爬取了前几页如果需要更多,自行更改range里面参数就可了。代码如下:import requestsfrom lxml import etreeurls = ["https://www.23us.us/html/14...原创 2019-12-12 11:24:26 · 554 阅读 · 2 评论 -
爬虫--汽车之家
spider的代码:# -*- coding: utf-8 -*-import scrapyfrom AD.items import AdItemclass AdImgSpider(scrapy.Spider): name = 'AD_img' allowed_domains = ['car.autohome.com.cn'] start_urls = ['ht...原创 2019-12-09 11:13:41 · 460 阅读 · 0 评论 -
scrapy 登陆豆瓣(无验证码)
# -*- coding: utf-8 -*-import scrapyclass DoubanSpider(scrapy.Spider): name = 'douban' allowed_domains = ['douban.com'] start_urls = ['https://accounts.douban.com/j/mobile/login/basic'...原创 2019-12-07 18:51:28 · 268 阅读 · 0 评论 -
模拟登陆人人网
pipelines ,items里面都没有任何的输入,然后setting里面自行加上请求头和开启就好了。# -*- coding: utf-8 -*-import scrapyclass RenrenSpider(scrapy.Spider): name = 'renren' allowed_domains = ['renren.com'] start_urls ...原创 2019-12-07 17:20:31 · 222 阅读 · 0 评论 -
微信小程序爬取教程
主代码:# -*- coding: utf-8 -*-import scrapyfrom scrapy.linkextractors import LinkExtractorfrom scrapy.spiders import CrawlSpider, Rulefrom wxapp.items import WxappItemclass WxappSpiderSpider(Craw...原创 2019-12-07 11:16:16 · 3317 阅读 · 0 评论 -
拉钩网的两种爬取方法
方法一:import requestsurl = "https://www.lagou.com/jobs/list_python?labelWords=&fromSearch=true&suginput="headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) Apple...原创 2019-12-06 16:45:53 · 408 阅读 · 0 评论 -
selenium一些语法补充演示
行为链# 行为链from selenium.webdriver.common.action_chains import ActionChainsfrom selenium import webdriverdriver = webdriver.Chrome()driver.get("https://www.baidu.com/")inputTag = driver.find_el...原创 2019-12-05 12:07:59 · 184 阅读 · 0 评论 -
多线程下载表情包之同步爬虫
Queue线程安全队列在线程中,访问一些全局变量,加锁是一个经常性问题。如果你想把一些数据存储到某个队列中,那么python内置了一个线程安全的模块叫做queue模块。python中的queue模块中提供了同步的、线程安全的队列类,包括FIFO(先进先出),LIFO(先进后出)。这些队列都实现了锁源语,能够在多线程中直接使用,可以使用队列来实现线程的同步。相关函数如下:初始化Queue():...原创 2019-12-03 22:20:45 · 142 阅读 · 0 评论 -
Lock版生产者和消费者模式
import threadingimport randomimport timegMoney = 1000gLock = threading.Lock()gTotalTimes = 10gTime = 0class Product(threading.Thread): def run(self): global gMoney global...原创 2019-12-03 18:22:09 · 224 阅读 · 0 评论 -
多线程共享全局变量以及锁机制
众多周知,使用多线程爬虫以后我们的爬取速度就会大大增加,如上篇文章中演示的原本需要6秒的运行速度,在增加两个线程以后只需要3秒就可以执行完成。但是,多线程并非是没有问题的,下面我们来看看这个例子:import threadingVALUE = 0def add_value(): global VALUE for x in range(1000000): ...原创 2019-12-03 16:43:41 · 211 阅读 · 0 评论 -
简单的多线程爬虫
多线程 多线程(英语:multithreading),是指从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提升整体处理性能。具有这种能力的系统包括对称多处理机、多核心处理器以及芯片级多处理(Chip-level multithreading)或同时多线程(Simultaneous multithreading)处理器。在一个程...原创 2019-12-03 16:01:06 · 246 阅读 · 0 评论 -
数据转化与数据存储
json字符串介绍 JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。JSO...原创 2019-12-02 21:28:44 · 222 阅读 · 0 评论 -
中国天气网爬虫
之前没有使用过BeautifulSoup,这次特意使用它来爬取,不得不说写起来是真的不方便,而且速度慢。import requestsfrom bs4 import BeautifulSoupdef parse_page(url): headers = { "User-Aent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64...原创 2019-12-01 15:56:32 · 365 阅读 · 3 评论 -
BeautifulSoup4
1.BeautifulSoup4库 BeautifulSoup4用来解析HTML比较简单,API非常人性化,支持选择CSS选择器python标准库中的HTML解析器,也支持lxml的XML解析器。简单代码使用:from bs4 import BeautifulSouptext = """<!DOCTYPE html><html lang="en"><h...原创 2019-11-30 22:45:48 · 165 阅读 · 0 评论 -
CookieJar类
CookieJar类有一些子类,分别是FileCookieJar,MozillaCookieJar,LWPCookieJar。1.CookieJar:管理HTTP cookie值、存储HTTP请求生成的cookie、向传出的HTTP请求添加cookie的对象。整个cookie都存储在内存中,对CookieJar实例进行垃圾回收后cookie也将丢失。2.FileCookieJar (f...原创 2019-11-28 22:51:34 · 3223 阅读 · 1 评论 -
ProxyHandler处理器(代理设置)
ProxyHandler1.代理的原理:在请求目的网站之前,先请求代理服务器,然后让代理服务器去请求目的网站,代理服务器拿到目的网站的数据后,再转发给我们的代码2.http://httpbin.org这个网站可以查看http的一些参数3.在代码中使用代理使用urllibrequest.ProxyHandler,传入一个代理,这个代理是一个字典,字典的key依赖于代理服务器能够接收的类型,...原创 2019-11-28 20:49:52 · 326 阅读 · 0 评论 -
用request模块爬取拉钩招聘信息
from urllib import requestfrom urllib import parse# url = "https://www.lagou.com/jobs/list_python?labelWords=&fromSearch=true&suginput="url = "https://www.lagou.com/jobs/positionAjax.json?...原创 2019-11-28 20:22:18 · 255 阅读 · 0 评论 -
urllib库
urlopen函数:1.url:请求的url2.data:请求的data,如果设置了这个值,那么将变成post请求3.返回值:返回的是一个http.client.HTTPRequest对象,这个对象是一个类文件句柄对象。有read(size),readline,realines以及getcode等方法。from urllib import requestresp = request.u...原创 2019-11-26 21:29:47 · 104 阅读 · 0 评论 -
百度贴吧-crawlspider版本
# -*- coding: utf-8 -*-import scrapyimport urllibimport requestsclass TbSpider(scrapy.Spider): name = 'tb' allowed_domains = ['tieba.baidu.com'] start_urls = ['https://tieba.baidu.co...原创 2019-11-25 18:13:33 · 147 阅读 · 0 评论 -
Scrapy-downloadmiddleware
Scrapy模拟登陆1.携带cookie登陆# -*- coding: utf-8 -*-import scrapyimport reclass RrenSpider(scrapy.Spider): name = 'rren' allowed_domains = ['renren.com'] start_urls = ['http://renren.com/']...原创 2019-11-24 20:20:56 · 156 阅读 · 0 评论 -
Scrapy 中的crawlspider
crawlspider的使用常见爬虫 scrapy genspider -t crawl 爬虫名 allow_domain指定start_url,对应的响应会进过rules提取url地址完善rules,添加Rule Rule(LinkExtractor(allow=r'/web/site0/tab5240/info\d+\.htm'), callback='parse_item'...原创 2019-11-24 17:33:26 · 159 阅读 · 0 评论 -
scrapy框架介绍
什么是scrapy?Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架,我们只需要实现少量的代码,就能够够快速的抓取Scrapy使用了Twisted[‘twisted’]异步网络框架,可以加快我们的下载速度。异步和非阻的区别:异步:调用在发出之后,这个调用就直接返回,不管有无计算结果非阻塞:关注的是程序在等待调用结果(消息,返回值)时的状态,指在不能立刻得到结果之前,该调...原创 2019-11-22 16:56:09 · 175 阅读 · 0 评论 -
斗鱼爬虫
Tesseract1.定义: Tesseract是一个将图像翻译成文字的OCR库(光学文字识别,Optical Character Recognition)2.安装: sudo apt-get install tesseract-ocr3.在python中调用Tesseract pip install pytesseractTesseract处理规范的文字在终端中: te...原创 2019-11-21 16:42:16 · 243 阅读 · 0 评论 -
代码中练习selenium的一些具体用法
qq邮箱示例from selenium import webdriverimport timedriver = webdriver.Chrome()driver.get("https://mail.qq.com/cgi-bin/loginpage")# 切换到Iframedriver.switch_to.frame("login_frame")driver.find_el...原创 2019-11-19 22:38:06 · 127 阅读 · 0 评论 -
动态HTML处理
动态HTML技术了解JS :是网络上最常用的脚本语言。它恶意收集用户的跟踪数据,不需要重载页面直接提交表单,在页面嵌入多媒体文件,甚至运行网页游戏JQuery:Query是一个快速、简洁的JavaScript框架,封装了JavaScript常用的功能代码Ajax:AJAX可以使网页实现异步更新,可以在不重新加载整个网页的情况下,对网页的某部分进行更新JS,JQuery,Ajax:对搜索引擎...原创 2019-11-18 16:16:06 · 228 阅读 · 0 评论 -
糗百爬虫
# coding=utf-8import requestsfrom lxml import etreeclass QiubaiSpdier: def __init__(self): self.url_temp = "https://www.qiushibaike.com/8hr/page/{}/" self.headers = { ...原创 2019-11-15 22:48:53 · 131 阅读 · 0 评论 -
爬虫数据
今天主要来介绍一下爬虫的三种处理数据方法,希望对大家有所帮助.在进行数据处理之前,我们有必要的知道数据是怎么分类的非结构化的数据:html处理方法:正则表达式.xpath 结构化数据:json,xml等处理方法:转化为python数据类型一.爬虫数据-json数据处理 数据提取之jsonJSON是一种轻量级的数据交换式,它使得人们很容易的进行阅读和编写.同时也方便了...原创 2019-11-14 22:10:03 · 1836 阅读 · 0 评论 -
xpath节点选择
XPath语法和lxml模块XPath1.什么是XPath2.XPath 开发工具3.Chrome中安装XPath 开发工具不能使用4.选取节点5.谓语(Predicates)6.选取未知节点7.选取若干路径8.XPath的运算符 lxml库1.lxml简单使用2.lxml和xpath结合使用 ...转载 2019-11-14 18:31:06 · 2135 阅读 · 0 评论 -
正则和原始字符串
正则表达式简单介绍定义: 就是事先先定义好的一些特定字符及这些特定字符的组合,组成一个"规则字符串",这个"规则字符串"用来表达对字符串的一种过滤逻辑.方法:re.compile(编译)pattern.match(从头找一个)pattern.search(找一个)pattern.findall(找所有) pattern.sub(替换)下面为了大家可以更清晰的复习和了解到正则...原创 2019-11-11 23:14:53 · 244 阅读 · 0 评论 -
chrome分析post与json
一.寻找post地址寻找登录的post地址1.在form表单中寻找action对应的url地址 post的数据是input标签中name的值作为键,真正的用户密码作为值得字典,post的url地址就是action对应的url地址2.抓包,寻找登录的url地址勾选perserve log按钮,防止页面跳转找不到url寻找post数据,确认参数参数不会变直接用,比如密码不是动态加密的...原创 2019-11-09 22:31:06 · 651 阅读 · 0 评论 -
爬虫requests库
一.requests模块发送post请求发送request请求哪些地方我们会用到POST请求:1.登录注册(POST比GET更安全)2.需要传输大文本内容的时候(POST请求对数据长度没有要求)所以同样的,我们的爬虫也需要早着两个地方晦气模拟浏览器发送post请求用法:response = requests.post(“http://www.baidu.com/”,data = d...原创 2019-11-08 23:57:20 · 188 阅读 · 0 评论