150讲轻松搞定Python网络爬虫
150讲轻松搞定Python网络爬虫
浊酒南街
纵使疾风起,人生不言弃。
展开
-
第四章:数据存储-Excel数据处理-cell常用数据类型
直接学习:https://edu.csdn.net/course/play/24756/280722Excel数据处理-cell常用数据类型`import xlrdworkbook = xlrd.open_workbook('成绩表.xlsx')sheet = workbook.sheet_by_index(0)# 1、xlrd.XL_CELL_TEXT:文本类型,打印结果为1# ce...原创 2020-04-04 16:55:26 · 332 阅读 · 0 评论 -
第五章:爬虫进阶-selenium隐式等待和显示等待
直接学习:https://edu.csdn.net/course/play/24756/284649selenium隐式等待和显示等待1、隐式等待:指定一个时间,在这个时间内一直会处于等待状态,隐式等待需要使用driver.implicitly_wait()2、显示等待:指定在某个时间内,如果条件满足了那就不再等待,如果在指定的时间内条件都不满足,那么就不用再等待了。显示等待的方法是from...原创 2020-04-08 11:01:33 · 412 阅读 · 0 评论 -
第四章:数据存储-JSON处理
直接学习:https://edu.csdn.net/course/play/24756/280716JSON处理:JSON字符串格式介绍:什么是JSON字符串:JSON(JavaScript Object Natation,JS对象标记)是一种轻量级的数据交换格式。它基于ECMASript(w3c制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存贮和表现数据,简单和清晰的层次结...原创 2020-04-03 21:36:37 · 107 阅读 · 0 评论 -
第三章:数据解析-常见的四种对象
直接学习:https://edu.csdn.net/course/play/24756/280698常见的四种对象:1、Tag : BeautifulSoup 中所有的标签都是Tag类,并且BeautifulSoup的对象其实本质上也是一个Tag类型。所以其实有些方法比如find,find_all 并不是BeautifulSoup的,而是Tag的。2、NavigableString:继承Py...原创 2020-03-31 22:02:56 · 315 阅读 · 0 评论 -
第四章:数据存储-MySQL数据库-数据库插入操作
直接学习:https://edu.csdn.net/course/play/24756/280727MySQL数据库-数据库插入操作title = '444'content = '555'sql = "insert into article(id,title,content) values (null,%s,%s)"cursor.execute(sql,(title,content))...原创 2020-04-05 09:28:06 · 100 阅读 · 0 评论 -
第三章:数据解析-正则表达式-多字符匹配
直接学习:https://edu.csdn.net/course/play/24756/280707正则表达式-多字符匹配import re # *:匹配零个或多个字符text = 'Aac'print('='*50)ret = re.match('\w*',text)print(ret.group())print('='*50)# +:匹配1个或者多个字符text = '1...原创 2020-04-03 15:01:36 · 81 阅读 · 0 评论 -
第二章:网络请求-requests库-第三方库
直接学习:https://edu.csdn.net/course/play/24756/280666requests库-第三方库requests :让HTTP服务人类发送get请求:import requestsheaders = { 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.3...原创 2020-03-29 22:56:33 · 119 阅读 · 0 评论 -
第四章:数据存储-MySQL数据库-数据库删除
直接学习:https://edu.csdn.net/course/play/24756/280729MySQL数据库-数据库删除示例:sql = "delete from article where id = 2"cursor.execute(sql)语法:delete from [表名] 条件原创 2020-04-05 09:59:56 · 115 阅读 · 0 评论 -
第三章:数据解析-CSS选择器
直接学习:https://edu.csdn.net/course/play/24756/280701CSS选择器select方法:使用以上方法可以方便的找出元素,但有时候使用css选择器的方法可以更加的方便,使用css选择器的语法,应该使用select方法。以下列出几种常用的css选择器方法。1、通过标签名查找print(soup.select('a'))2、通过类名查找通过类名,...原创 2020-04-01 18:16:09 · 161 阅读 · 0 评论 -
第二章:网络请求-url库-编码与解码
直接学习:https://edu.csdn.net/course/play/24756/280656url库-编码与解码1、urlencode函数可以把字典数据转化为url编码的数据from urllib import parsedata1 = {'name':"张三",'age':'18','greet':'hello world'}qs = parse.urlencode(data1...原创 2020-03-28 17:13:24 · 160 阅读 · 0 评论 -
第三章:数据解析-正则表达式小案例
直接学习:https://edu.csdn.net/course/play/24756/280708正则表达式小案例:`import re # 1.验证手机号码:手机号码规则是以1开头,第二位可以是34587,后面那9位就可以随便了text = '14781245662'result = re.match('1[34587]\d{9}',text)print(result.group(...原创 2020-04-03 15:56:14 · 112 阅读 · 0 评论 -
第五章:爬虫进阶-线程安全的对列Queue
直接学习:https://edu.csdn.net/course/play/24756/284633线程安全的对列QueuePython 的queue模块中提供了同步的,线程安全的对列类,相关函数如下:1、Queue(maxsize):初始化,创建一个先进先出的对列2、emputy():判断队列是否为空3、full():判断队列是否满了4、get():从队列中取一个数据。默认情况下是阻...原创 2020-04-06 13:44:26 · 147 阅读 · 0 评论 -
第五章:爬虫进阶-condition 版本的生产者与消费者模式
直接学习:https://edu.csdn.net/course/play/24756/284632condition 版本的生产者与消费者模式:Lock版本的生产者与消费者模式的一个弊端是在消费者中,总是通过while true死循环并且上锁的方式去判断钱够不够。频繁上锁很耗CPU资源。condition 版本的生产者与消费者模式解决了以上弊端,它通过threading.Condition来...原创 2020-04-06 11:25:11 · 127 阅读 · 0 评论 -
第四章:数据存储-MySQL数据库-数据库更新操作
直接学习:https://edu.csdn.net/course/play/24756/280730MySQL数据库-数据库更新操作语法:update [表名] 更新操作[条件]sql =" update article set title ='钢铁是怎么炼成的'where id = 4"cursor.execute(sql)...原创 2020-04-05 10:09:06 · 139 阅读 · 0 评论 -
第三章:数据解析-什么是xpath
直接学习:https://edu.csdn.net/course/play/24756/280671什么是xpath?xpath(XML Path Language)是一门在xml和html文档中查询信息的语言,可用在xml和html文档中对元素和属性进行遍历。xpath开发工具:chrome插件xpath helperfirefox插件try xpathxpath 节点在xpat...原创 2020-03-30 16:05:19 · 150 阅读 · 0 评论 -
第五章:爬虫进阶-selenium行为链
直接学习:https://edu.csdn.net/course/play/24756/284647selenium行为链:有时候在页面的操作中可能要有很多步,那么这时候可以使用鼠标行为链类selenium.webdriver.common.action_chains . ActionChains来完成。比如现在要将鼠标移动到某个元素上并执行点击事件。示例代码如下:`driver.get(...原创 2020-04-07 21:22:44 · 330 阅读 · 0 评论 -
第四章:数据存储-csv文件处理-读取csv文件的两种方式
直接学习:https://edu.csdn.net/course/play/24756/280718csv文件处理-读取csv文件的两种方式:# 这种方式读取到的每一条数据是个列表,所以需要通过下标的方式获取具体的某一个值with open ('stock.csv','r',newline='',encoding='utf-8') as fp: reader = csv.reader...原创 2020-04-04 11:16:38 · 723 阅读 · 0 评论 -
第五章:爬虫进阶-动态网页爬虫
直接学习:https://edu.csdn.net/course/play/24756/284642动态网页爬虫:#什么是动态网页爬虫和AJAX技术:1、动态网页是指网页在不重新加载的情况下,通过AJAX技术动态更新网站的局部数据。比如拉钩网的职位页面,在换页的过程中,url是没有发生改变的,但是职位数据动态的改变了。2、AJAX(Asynchronouse JavaScript And ...原创 2020-04-06 22:49:04 · 133 阅读 · 0 评论 -
第四章:数据存储-将Python对象dump成JSON字符串
直接学习:https://edu.csdn.net/course/play/24756/280716将Python对象dump成JSON字符串:1、dumps:把python对象转换成JSON格式的字符串2、dump:把python对象转换成JSON格式的字符串,并且还可以接收一个文件指针fp参数,可以写入文件中。这两个方法都有一个ensure_ascii参数,默认情况下这个参数的值是tr...原创 2020-04-03 22:02:07 · 407 阅读 · 0 评论 -
第二章:网络请求-urllib库-urlretrieve函数
直接学习:https://edu.csdn.net/course/play/24756/280655urllib库-urlretrieve函数urlretrieve 函数:这个函数可以将网页上的一个文件保存到本地request.urlretrieve (url,文件名)#文件名加后缀from urllib import request # request.urlretrieve('ht...原创 2020-03-28 16:16:16 · 177 阅读 · 0 评论 -
第一章:爬虫基础-Http协议介绍
直接学习:https://edu.csdn.net/course/play/24756/280651一、 Http协议介绍:1、HTTP协议:全称是HyperText Transfer Protocal,中文意思是超文本传输协议,是一种发布和接收HTML(HyperText Marup Language)页面的方法。服务器端口号是80端口。2、HTTPS协议:是HTTP协议的加密版本,在HT...原创 2020-03-28 11:32:23 · 296 阅读 · 0 评论 -
第五章:爬虫进阶-打开新窗口和切换页面
直接学习:https://edu.csdn.net/course/play/24756/284650#打开新窗口和切换页面:1、selenium中没有专门打开新窗口的方法,是通过’window.execute_script()'来执行js脚本的形式来打开新窗口的。driver.execute_script("window.open('https://www.douban.com')")2...原创 2020-04-08 12:02:48 · 855 阅读 · 0 评论 -
第四章:数据存储-Excel 处理-编辑Excel文件
直接学习:https://edu.csdn.net/course/play/24756/280724Excel 处理-编辑Excel文件一、写入Excel文件:1、导入xlwt模块2、创建一个workbook对象3、创建一个sheet对象4、使用sheet.write 方法把数据写入到sheet下指定行和列中,如果想要在原来的workbook对象上添加新的cell,那么需要调用put_...原创 2020-04-04 18:49:42 · 145 阅读 · 0 评论 -
第五章:爬虫进阶-多线程介绍及threading基本使用
直接学习:https://edu.csdn.net/course/play/24756/284626多线程介绍及threading基本使用:#什么是多线程:1、理解:默认情况下,一个程序只有一个线程,一个进程,代码是依次线性执行的。而多线程则可以并发执行,一次性多个人做多件事,自然比单线程要快。#如何创建一个基本的多线程:使用’threading '模块下’thread’类即可创建一个线...原创 2020-04-05 20:13:55 · 102 阅读 · 0 评论 -
第三章:数据解析-contents和children
直接学习:https://edu.csdn.net/course/play/24756/280699contents和children:返回某个标签下的直接子元素,其中也包括字符串,他们两个的区别是contents返回的是一个列表,children返回的是一个迭代器。string和strings以及的属性:1、string :获取某个标签下的非标签字符串,返回来的是一个字符串,如果这个标签...原创 2020-03-31 22:32:20 · 132 阅读 · 0 评论 -
第三章:数据解析-正则表达式-re模块常用函数
直接学习:https://edu.csdn.net/course/play/24756/280712正则表达式-re模块常用函数# 2、findall: 查找所有满足条件的text="apple's price is $99, orange's price is $88"result = re.findall('\$\d+',text)print(result)# 3、sub:根据规...原创 2020-04-03 21:01:40 · 150 阅读 · 0 评论 -
第四章:数据存储-Excel 处理-打开Excel和获取Sheet`
直接学习:https://edu.csdn.net/course/play/24756/280720Excel 处理-打开Excel和获取Sheet`import xlrdworkbook = xlrd.open_workbook('成绩表.xlsx')# 获取所有的sheet_names名称# print(workbook.sheet_names())# 根据索引获取指定的sheet...原创 2020-04-04 15:35:35 · 155 阅读 · 0 评论 -
第四章:数据存储-Excel处理-cell的相关操作
直接学习:https://edu.csdn.net/course/play/24756/280721Excel处理-cell的相关操作import xlrdworkbook = xlrd.open_workbook('成绩表.xlsx')sheet = workbook.sheet_by_index(0)# 1、sheet.cell(row,col):获取指定行和列的cell对象 # ...原创 2020-04-04 16:07:53 · 926 阅读 · 0 评论 -
第一章:爬虫基础-爬虫介绍
第一章:爬虫基础爬虫介绍:#什么是爬虫?通俗理解,爬虫是一个模拟人类请求网站行为的程序,可以自动请求网页,并把数据爬取下来,然后使用一定的规则提取有价值的数据。#爬虫的应用场景1.搜索引擎(百度及谷歌)2.伯乐在线3.惠惠购物助手4.数据分析5.抢票软件等#为什么用Python写爬虫1.PHP:PHP是世界上最好的语言,但他天生不是做这个的,而且对多线程和异步支持不是很好,并...原创 2020-03-27 23:27:38 · 361 阅读 · 0 评论 -
第五章:爬虫进阶-selenium定位元素
直接学习:https://edu.csdn.net/course/play/24756/284645selenium定位元素:1.find_element_by_id():根据id来查找某个元素2.find_element_by_class_name():根据类名来查找元素3.find_element_by_name():根据name属性的值来查找元素4.find_element_by_...原创 2020-04-07 16:04:21 · 155 阅读 · 0 评论 -
第五章:爬虫进阶-多线程共享全局变量的问题
直接学习:https://edu.csdn.net/course/play/24756/284628多线程共享全局变量的问题:在多线程中,如果需要修改全局变量,那么需要在修改全局变量的地方使用锁锁起来,执行完成后再把锁释放掉。使用锁的原则:1、把尽量少的和不耗时的代码放到锁中执行。2、代码执行完成后,要记得释放锁。在python中,可以使用’threading.lock’来创建锁,'l...原创 2020-04-05 21:30:31 · 158 阅读 · 0 评论 -
第三章:数据解析-lxml库
直接学习:https://edu.csdn.net/course/play/24756/280673lxml库lxml是一个html/tml的解析器,主要功能是如何解析和提取html/tml数据。基本使用:from lxml import etreetext = '''<div> <ul> <li class = "item-0"&...原创 2020-03-30 18:46:46 · 145 阅读 · 0 评论 -
第五章:爬虫进阶-selenium操作cookie
直接学习:https://edu.csdn.net/course/play/24756/284648selenium操作cookie:1、获取所有的cookie:for cookie in driver.get_cookies() print(cookie)2、根据cookie的key获取value:value= driver.get_cookie(key)3、删除所有cooki...原创 2020-04-07 21:50:05 · 104 阅读 · 0 评论 -
第六章:Scrapy框架-CrawlSpider爬虫介绍
直接学习:https://edu.csdn.net/course/play/24756/283290CrawlSpider爬虫介绍:#1、作用:可以定义规则,让scrapy自动去爬取我们想要的链接。而不必跟spider类一样,yield Request#2、创建: scrapy genspider -t crawl [爬虫名] [域名]#3、提取的两个类:*LinkExtrator:用来...原创 2020-04-28 20:42:22 · 198 阅读 · 0 评论 -
第二章:网络请求-url库url解析
直接学习:https://edu.csdn.net/course/play/24756/280657url库url解析:parse.urlparse()和parse.urlsplit()解析urlfrom urllib import parseurl = 'https://baike.baidu.com/item/%E7%9F%B3%E5%8E%9F%E9%87%8C%E7%BE%8E/1...原创 2020-03-28 17:40:45 · 134 阅读 · 0 评论 -
第二章:网络请求-urllib库-cookie原理解析
直接学习:https://edu.csdn.net/course/play/24756/280662urllib库-cookie原理解析什么是cookie:是指网站为了辨别用户身份,进行session跟踪而存贮在用户本地终端上的数据。cookie的格式:Set-Cookie : NAME= VALUE; Expires/Max-age; Path =PATH;Domain=DOMAIN_...原创 2020-03-29 17:35:59 · 114 阅读 · 0 评论 -
第五章:爬虫进阶-selenium表单元素操作
直接学习:https://edu.csdn.net/course/play/24756/284646selenium表单元素操作:1、webelement.send_keys:给输入框填充内容2、webelement.click:点击3、操作select标签,需要首先用’from selenium.webdriver.support.ui import Select ',来包装一下选中的对...原创 2020-04-07 17:51:07 · 226 阅读 · 0 评论 -
第三章:数据解析-bs4-BeautifulSoup4的基本介绍
直接学习:https://edu.csdn.net/course/play/24756/280696bs4-BeautifulSoup4的基本介绍:和lxml一样,BeautifulSoup4也是一个html/xml的解析器,主要的功能也是如何解析和提取html/xml数据安装和文档安装:pip install bs4中文文档:https://www.crummy.com/softwar...原创 2020-03-31 17:58:22 · 243 阅读 · 0 评论 -
第四章:数据存储-MySQL数据库-数据库查找操作
直接学习:https://edu.csdn.net/course/play/24756/280728MySQL数据库-数据库查找操作:sql = "select id , title from article where id >2 "cursor.execute(sql)执行完sql语句后,可以使用以下三种方法来提取数据:1.fetchone:提取第一条数据2.fetchal...原创 2020-04-05 09:46:19 · 125 阅读 · 0 评论 -
第五章:爬虫进阶-selenium补充
直接学习:https://edu.csdn.net/course/play/24756/284653selenium补充:1、get_property:获取html标签中官方写好的属性2、get_attribute:获取html标签中官方和非官方的属性3、driver.save_screenshoot:获取当前页面的截图,有时候请求失败了,那么可以把当前页面的截图保存下来,方便后期进行分析...原创 2020-04-08 18:36:04 · 117 阅读 · 0 评论