![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
爬虫
小瓶盖的猪猪侠
这个作者很懒,什么都没留下…
展开
-
requests源码之get方法
getdef get(url, params=None, **kwargs): r"""Sends a GET request. :param url: URL for the new :class:`Request` object. :param params: (optional) Dictionary, list of tuples or bytes to sen...原创 2020-05-04 10:45:10 · 362 阅读 · 0 评论 -
scrapy框架结合Selenium和ChromeDriver
from scrapy.http import HtmlResponseclass SeleniumMiddleware(object): def __init__(self): self.driver = webdriver.Chrome('./chromedriver') def process_request(self, request, spider):...原创 2020-05-03 21:47:48 · 926 阅读 · 0 评论 -
scrapy框架执行流程图
组件Scrapy 引擎(Engine)引擎负责控制数据流在系统中所有组件中流动,并在相应动作发生时触发事件.调度器(Scheduler)调度器从引擎接受request并将他们入队,以便之后引擎请求他们时提供给引擎.下载器(Downloader)下载器负责获取页面数据并提供给引擎,而后提供给spider.SpidersSpider是Scrapy用户编写用于分析response并提取...原创 2020-05-02 23:13:16 · 356 阅读 · 0 评论 -
scrapy爬虫之中间件Middleware
设置随机请求头spiderclass MiddlewSpider(scrapy.Spider): name = 'middlew' allowed_domains = ['exercise.kingname.info'] start_urls = ['http://exercise.kingname.info/exercise_middleware_ua'] c...原创 2020-05-02 22:13:57 · 378 阅读 · 0 评论 -
scrapy学习之ImagesPipeline
初级下载图片初级下载图片是直接通过scrapy框架直接下载图片image_spider.pyimport scrapyfrom tutorial.items import ImageItemclass ImageSpiderSpider(scrapy.Spider): name = 'image_spider' allowed_domains = ['autohome....原创 2020-05-01 22:46:53 · 469 阅读 · 0 评论 -
scrapy框架学习之CrawlSpider样例
# -*- coding: utf-8 -*-import scrapyfrom scrapy.linkextractors import LinkExtractorfrom scrapy.spiders import CrawlSpider, Ruleclass WeixinSpider(CrawlSpider): name = 'weixin' allowed_do...原创 2020-04-29 17:45:45 · 150 阅读 · 0 评论 -
scrapy框架学习之demo2
在该部分将pipeLine模块加上直接上代码qsbk.py# -*- coding: utf-8 -*-import scrapyfrom tutorial.items import TutorialItemfrom scrapy.http import responseclass QsbkSpider(scrapy.Spider): name = 'qsbk' a...原创 2020-04-24 21:49:02 · 133 阅读 · 0 评论 -
scrapy框架学习之demo1
环境配置1、安装Scarpy库2、安装pypwin32库创建项目在pytharm的终端创建一个scrapy的项目scrapy startproject tutorial相应的目录下就有了刚刚创建的项目创建爬虫来到刚刚的项目中的spiders的目录下,继续在pycharm下的终端输入scrapy genspider qsbk "qiushibaike.com"代码,创建一个...原创 2020-04-24 17:54:09 · 128 阅读 · 0 评论 -
selenuim篇之拉勾网爬虫
from selenium import webdriverfrom selenium.webdriver.common.action_chains import ActionChainsimport time,randomfrom lxml import etreedef next_click(button): global driver action = Ac...原创 2020-04-24 14:03:51 · 130 阅读 · 0 评论 -
selenium篇之其他
屏幕截图from selenium import webdriverdriver = webdriver.Firefox()driver.get('http://www.python.org/')driver.save_screenshot('screenshot.png')driver.quit()如何向下滚动到页面底部您可以使用execute_script方法在加载的页面上执...原创 2020-04-23 16:55:16 · 93 阅读 · 0 评论 -
selenium篇之行动链
常用接口说明接口描述click(on_element = None )单击一个元素double_click(on_element = None )双击一个元素move_by_offset(xoffset,yoffset将鼠标移动到当前鼠标位置的偏移处move_to_element(to_element )将鼠标移到元素的中间move_to_el...原创 2020-04-23 15:39:58 · 150 阅读 · 0 评论 -
selenium篇之等待
如今,大多数Web应用程序都在使用AJAX技术。当浏览器加载页面时,该页面中的元素可能会以不同的时间间隔加载。这使查找元素变得困难:如果DOM中尚不存在元素,则定位函数将引发ElementNotVisibleException异常。使用等待,我们可以解决此问题。等待使执行的动作之间有些松懈-主要是定位元素或对该元素进行的任何其他操作。Selenium Webdriver提供两种类型的等待-隐式和...原创 2020-04-23 15:04:16 · 95 阅读 · 0 评论 -
selenium篇之元素定位
元素定位官网传送门有多种策略可以在页面中定位元素。您可以根据自己的情况选择最合适的一种。Selenium提供了以下方法来查找页面中的元素:find_element_by_idfind_element_by_namefind_element_by_xpathfind_element_by_link_textfind_element_by_partial_link_t...原创 2020-04-23 14:31:10 · 200 阅读 · 0 评论 -
python爬虫之'chromedriver' executable needs to be in PATH解决办法
1、首次选择适合自己版本的chromedriver,如何选择可以看我这篇文章2、将chromedriver.exe文件放到google浏览器的安装目录,我的google浏览器安装目录是C:\Program Files (x86)\Google\Chrome\Application3、再次执行测试程序from selenium import webdriverdriver_path = ...原创 2020-04-23 09:25:04 · 2742 阅读 · 0 评论 -
python爬虫之斗图网
单线程import requestsfrom lxml import etreefrom urllib import requestimport osheaders = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/...原创 2020-04-22 22:13:31 · 206 阅读 · 0 评论 -
python爬虫之Queue队列
Queue队列类型FIFOQueue.Queue(maxsize=0)FIFO即First in First Out,先进先出。Queue提供了一个基本的FIFO容器,使用方法很简单,maxsize是个整数,指明了队列中能存放的数据个数的上限。一旦达到上限,插入会导致阻塞,直到队列中的数据被消费掉。如果maxsize小于或者等于0,队列大小没有限制。LIFOQueue.LifoQueu...原创 2020-04-22 19:57:50 · 610 阅读 · 0 评论 -
python爬虫之生产者与消费者
普通生产者与消费者模式import threadingimport random,timeItem = 1000lock = threading.Lock()class Producter(threading.Thread): def run(self): global Item while(True): time.sle...原创 2020-04-22 17:21:27 · 372 阅读 · 0 评论 -
python爬虫之threading多线程
python在创建多线程时,需要引用threading库Thread类创建多线程Thread类创建多线程,将需要执行的函数作为target参数传入其中def Coding(): for x in range(3): print("正在写代码%s" % threading.current_thread()) time.sleep(1)def Drwa...原创 2020-04-22 16:18:55 · 260 阅读 · 0 评论 -
pycharm爬虫之与mysql操作
在连接mysql数据库时,采用的是pymysql库测试连接数据库import pymysqldb = pymysql.connect(host="192.168.218.129",user="root",password="11111111",database="pymysql",port=3306)# 使用cursor()方法获取操作游标cursor = db.cursor()#...原创 2020-04-22 13:55:27 · 419 阅读 · 0 评论 -
python爬虫之json.dump与json_dumps
python提供了json.dump与json_dumps两个函数将python对象转化为json格式的字符串json.dumps函数json.dumps函数是在内存中将python对象转化为json格式的字符串import jsonob = [ {"name":"小名", "age":23 }, {"name":"消防", "age":23...原创 2020-04-21 20:13:24 · 687 阅读 · 0 评论 -
python爬虫之json.load与json.loads
之前介绍了如何将python对象转化为json格式字符串用于保存,这里将介绍如何将json格式字符串转化为python对象json.loads函数json.loads函数是将内存中json格式字符串转化为python对象json_str = '[{"name": "小名", "age": 23}, {"name": "消防", "age": 23}]'objson = json.loads...原创 2020-04-21 20:12:24 · 1016 阅读 · 0 评论 -
python爬虫之中古诗网
网址https://www.gushiwen.org/default_1.aspx原创 2020-04-21 16:23:20 · 324 阅读 · 0 评论 -
python爬虫之re模块
match函数match:从开始的位置进行匹配。如果开始的位置没有匹配到。就直接失败了。text = "hello"ret = re.match("h",text)print(ret.group())search函数在字符串中找到第一个满足条件的。text = "hello"ret = re.search("e",text)print(ret.group())group 分...原创 2020-04-20 23:58:44 · 270 阅读 · 1 评论 -
python爬虫之正则表达式
字符符号描述.匹配除换行符以外的任意字符\w匹配字母或数字或下划线(word)\s匹配任意的空白符(space)\d匹配数字(digital)\n匹配一个换行符\t匹配一个制表符\b匹配一个单词的结尾^匹配字符串的开始,除非在方括号表达式中使用,此时它表示不接受该字符集合。要匹配 ^ 字符本身,请使用 ^。$匹...原创 2020-04-20 22:29:03 · 204 阅读 · 0 评论 -
python爬虫之天气预报网
import requestsfrom bs4 import BeautifulSoupheaders = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36"}c...原创 2020-04-20 19:05:40 · 161 阅读 · 0 评论 -
python爬虫之不规则html文本解析
在使用bs4时,经常会遇见不规则html文本,这时候需要使用html5lib库进行解析html = BeautifulSoup(text, "html5lib")原创 2020-04-20 16:25:19 · 687 阅读 · 0 评论 -
python爬虫之Beautifulsoup库
https://www.cnblogs.com/OliverQin/p/12595647.htmlhttps://www.crummy.com/software/BeautifulSoup/bs4/doc.zh/原创 2020-04-20 00:13:20 · 207 阅读 · 0 评论 -
python爬虫之电影天堂
import requestsfrom lxml import etreeBASE_URL="https://www.dytt8.net"url = "https://www.dytt8.net/html/gndy/dyzz/list_23_1.html"headers1 = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win...原创 2020-04-17 20:59:28 · 2968 阅读 · 0 评论 -
python爬虫之xpath
XPath 使用路径表达式来选取 XML 文档中的节点或节点集。节点是通过沿着路径 (path) 或者步 (steps) 来选取的选取节点表达式描述nodename选取此节点的所有子节点。/从根节点选取。//从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。.选取当前节点。…选取当前节点的父节点。@选取属性。实例...原创 2020-04-15 18:25:25 · 119 阅读 · 0 评论 -
python爬虫之requests库(二)
结合python爬虫之requests库(一)部分,我们继续,接下来将首先介绍requests的post方法。我们还是来访问http://httpbin.org/postimport requestsdata = {"key1":"value1","key2":"value2"}url = "http://httpbin.org/post"re = requests.post(url,d...原创 2020-04-14 17:47:43 · 503 阅读 · 0 评论 -
python爬虫之requests库(一)
requests库是一个常用的用于http请求的模块,它使用python语言编写,可以方便的对网页进行爬取,是学习python爬虫的较好的http请求模块requests库的安装在这里,我是使用pycharm对requests库进行安装的,首先选择File->settings,找到Project pychram,点击右边的加号在弹出栏中输入requests选中,然后点击下面的inst...原创 2020-04-14 16:04:12 · 3291 阅读 · 1 评论 -
python爬虫之使用静态Cookie模拟用户登录
首先介绍下Cookie内容,什么是Cookie。Cookie的引文原意是“点心”,它是在客户端访问Web服务器时,服务器在客户端硬C盘上存放的信息,好像是服务器发送给客户的“点心”。服务器可以根据Cookie来跟踪客户状态,这对于需C要区别客户的场合(如电子商务)特别有用。当客户端首次请求访问服务器时,服务器先在客户端存放包含该客户的相关信息的Cookie,以后客户端每次请求访问服务器时,都会在H...原创 2020-04-14 09:35:26 · 495 阅读 · 0 评论 -
python爬虫之ProxyHandler代理
很多网站会检测某一段时间某个IP的访问次数(通过流量统计,系统日志等),如果访问次数多的不像正常人,它会禁止这个IP的访问。如果不使用代理IP时,我们都是通过上面红色通道对服务器进行访问,当访问次数多了,服务器的反爬机制就会禁用我们的ip,当查看到本地ip地址时,就直接返回错误消息。如果我们使用代理ip,当代理ip被禁了,我们可以使用其他的ip继续进行访问。这就是使用代理ip的好处。所以我们...原创 2020-04-13 21:00:46 · 346 阅读 · 0 评论 -
python爬虫之http.CookieJar库
我们在使用爬虫的时候,经常会用到cookie进行模拟登陆和访问。在使用urllib库做爬虫,我们需要借助http.cookiejar库中的CookieJar来实现,CookieJar类管理HTTP cookie值、存储HTTP请求生成的cookie、向传出的HTTP请求添加cookie的对象。整个cookie都存储在内存中,对CookieJar实例进行垃圾回收后cookie也将丢失。使用cook...原创 2020-04-13 17:20:58 · 1208 阅读 · 0 评论 -
python爬虫之urllib库学习
通过python实现对网络数据的爬取时,通常使用到urllib库,在urllib库中主要有request和parse两个模块,urlopenurlopen()函数用于实现对目标url的访问,例如我们对百度网址进行访问,就可以通过下面的例子re = request.urlopen("http://www.baidu.com")print(re.read())上面代码就会将百度返回的消息打...原创 2020-04-13 16:25:17 · 586 阅读 · 0 评论