![](https://img-blog.csdnimg.cn/20200517221407398.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Python爬虫
Python爬虫学习记录
二叉叔
我的博客只是我部分学习过程中的笔记,水平有限,不足之处还请多多批评指教,如果能帮到您那再好不过了。
展开
-
Python爬虫学习笔记(selenium+Headless)
selenium目前抛弃了之前使用的phantomanJS,改用Selenium+Headless的组合,不会有浏览器窗口弹出并且提升了执行速度,同时可以尽量规避网站对爬虫的审查(建议添加cookie并使用代理池)。使用时,首先应当安装selenium和webdriver,webdriver应当与当前Chrome浏览器版本一致才能正常使用,二者都建议使用最新版本。下载webdriver chrome:下载webdriver:http://chromedriver.storage.googleap.原创 2020-06-16 13:44:20 · 312 阅读 · 0 评论 -
Python爬虫学习笔记(应对反爬虫)
1.爬虫被网站识别的特征:爬取几次后需要进行验证 响应时间、速度变慢了 返回错误的状态码2.规避反爬虫加入user-agent、cookie、referer等信息 减缓爬虫速度,降低请求频率,设置下载等待时间 使用Chrome Headless模拟浏览器访问 拒绝遵守Robot协议:ROBOTSTXT_OBEY = False 减小并发请求数 使用分布式爬虫 使用...原创 2020-02-26 14:00:49 · 169 阅读 · 0 评论 -
Python爬虫学习笔记(使用代理及代理池——解决返回状态码302即IP被封的问题)
1.requests库import requests#如果代理需要认证,可以使用proxy='username:password@IP:port'proxyHttps = '121.33.220.158' #端口:808proxyHttp = '110.73.8.171' #端口:8123url = 'http://httpbin.org/get'proxies={'http':'...原创 2020-02-24 22:41:46 · 1112 阅读 · 0 评论 -
Python爬虫学习笔记(Redis 存储)
1.连接Redis数据库,设置、读入数据from redis import StrictRedis,ConnectionPoolurl = 'redis://:lj960802@localhost:6379/0' #密码@地址:端口/数据库pool = ConnectionPool.from_url(url)redis =StrictRedis(connection_pool=pool)re...原创 2020-02-15 21:03:35 · 1913 阅读 · 0 评论 -
Python爬虫学习笔记(图形验证码的识别)
将验证码图片命名code.jpg放在项目根目录下import tesserocrfrom PIL import Imageimage = Image.open('code.jpg') #打开验证码图片# 模式L”为灰色图像,它的每个像素用8个bit表示,0表示黑,255表示白,其他数字表示不同的灰度。image1=image.convert('L') #threshold = 150 #设置...原创 2020-02-19 17:42:58 · 178 阅读 · 0 评论 -
Python爬虫学习笔记(无法安装包+CMD使用pip安装的包无法在pycharm中使用)
原因:1.无法安装包往往是因为网络的原因,使用清华镜像安装也不是每次都可以2.pycharm无法使用包:这种情况往往是我们在cmd中使用pip安装包的whl文件时出现,因为网络的原因使用下载的whl文件安装包是一个很好的选择,这里提供另外一种选择以及解决问题的方法解决:安装包:1.从网盘或者博客中搜索对应本机python版本的包的whl文件,打开CMD,cd到保存whl文...原创 2020-02-19 17:02:08 · 314 阅读 · 0 评论 -
Python爬虫学习笔记(那段在win10下安装Docker的不堪回首的往事)
“捕鲸”的教训:1.搞计算机的还是尽量用Linux系统吧2.实在不行,下次重装系统请装专业版的Windows3.安装Docker、数据库这类东西最好还是别轻易更改安装路径4.如果你的是Windows家庭版的系统,想用虚拟机,咱还是用Oracle的吧5.因为“墙”的原因,贫穷的秃头程序员访问不了很多技术、资源网站,但是我们要记得,我们有水木清华,我们有马爸爸,我们有很多同病相怜...原创 2020-02-17 22:37:54 · 214 阅读 · 0 评论 -
Python爬虫学习笔记(实例:爬取今日头条街拍页面文章中的图片)
import requestsfrom urllib.parse import urlencodefrom requests import codesimport osfrom hashlib import md5from multiprocessing.pool import Poolimport reimport random#注意更换自己浏览器现实的headers和par...原创 2020-02-16 21:55:43 · 880 阅读 · 0 评论 -
Python爬虫学习笔记(开发者工具中的Ajax+实例:爬取个人微博主页)
Ajax文件的Type是xhr,点击浏览器的开发者工具中NetWork选项下的XHR就可以筛选出所有的ajax请求,RequestHeader中有一个信息为X-Requestsed-with:XMLHttpRequest,意思代表此请求是ajax请求爬取个人微博主页前10条微博的ID、内容、点赞数、评论数、转发数存入MongoDB数据库from urllib.parse imp...原创 2020-02-16 21:51:10 · 1137 阅读 · 0 评论 -
Python爬虫学习笔记(实例:Selenium+cookies实现自动登录百度首页)
实现效果:利用selenium添加cookies信息登录百度首页,如果账号没有登录,则首次手动登录账号后去cookies信息写入文件,待浏览器60秒后自动关闭,工程目录下生成cookies.pkl文件,之后再登录百度首页账号自动登录完毕#!coding=utf-8import timefrom selenium import webdriverimport picklecl...原创 2020-02-16 16:25:57 · 1027 阅读 · 0 评论 -
Python爬虫学习笔记(安装redis-dump ERROR:While executing gem ... (Gem::RemoteFetcher::FetchError) ****)
背景:windows10 OS 64位 Ruby、gem已经安装完成问题:CMD执行命令:gem install redis-dump 下载中断并报错:While executing gem ... (Gem::RemoteFetcher::FetchError) too many connection resets (https:...原创 2020-02-15 15:16:24 · 1281 阅读 · 2 评论 -
Python爬虫学习笔记(连接Redis数据库ERROR: Client sent AUTH, but no password is set)
原因:安装的Redis数据库没有设置密码解决方法:进入Redis的安装根目录:找到并双击运行:Redis-x64-3.2.100>redis-cli.exe查看是否设置了密码:127.0.0.1:6379> auth root(error) ERR Client sent AUTH, but no password is set说明没有设置密码,执行命...原创 2020-02-15 14:17:11 · 554 阅读 · 0 评论 -
Python爬虫学习笔记(Mysql 存储)
1.连接数据库import pymysqldb = pymysql.connect(host='localhost',user='root',password='lj960802',port=3306) #声明MySQL连接对象dbcursor = db.cursor() #获得MySQL的操作游标,利用游标执行SQL 语句cursor.execute('SELECT VERSION()')...原创 2020-02-14 22:30:59 · 340 阅读 · 0 评论 -
Python爬虫学习笔记(Selenium(3))
9.几种等待方式固定等待:time.sleep(seconds)隐式等待:driver.implicitly_wait(seconds)显示等待(推荐):from selenium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support.ui im...原创 2020-02-13 18:00:10 · 1091 阅读 · 0 评论 -
Python爬虫学习笔记(Selenium(2))
5.执行JS#将进度条拉到底部from selenium import webdriverbrowser = webdriver.Chrome()url = 'https://www.zhihu.com/explore'browser.get(url)browser.execute_script('window.scrollTo(0,document.body.scrollHeight)...原创 2020-02-13 17:52:16 · 181 阅读 · 0 评论 -
Python爬虫学习笔记(Selenium(1))
1.基本使用、from selenium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.common.keys import Keysfrom selenium.webdriver.support import expected_conditions as ECfrom s...原创 2020-02-13 17:49:21 · 173 阅读 · 0 评论 -
Python爬虫学习笔记(创建数据库MySQL数据库ERROR: "Can't create database 'spiders'; databas)
背景:pymysql库创建数据库出错报错:pymysql.err.ProgrammingError: (1007, "Can't create database 'XXXX'; database exists")分析:数据库中已经存在该 数据库,删除该库即可创建实例:import pymysqldb = pymysql.connect(host='loc...原创 2020-02-11 23:34:55 · 905 阅读 · 0 评论 -
Python爬虫学习笔记(文件存储:CSV存储)
CSV:以纯文本的形式写入表格数据#写入CSV文件import csvwith open('data.csv','w',encoding='utf-8') as csvFile:writer = csv.writer(csvFile,delimiter=' ') #初始化写入对象,修改列之间的分隔符为空格writer.writerow(['id','name','age'])...原创 2020-02-11 21:10:29 · 346 阅读 · 0 评论 -
Python爬虫学习笔记(文件存储:JSON存储)
json内容以字符串的形式存在:import json#json数据以键值对的形式以双引号来包围str ='''[{"name":"Bob","gender":"male","birthday":"1992-10-18"},{"name":"Selina","gender":"female","birthday":"1995-10-18"...原创 2020-02-11 16:30:31 · 146 阅读 · 0 评论 -
Python爬虫学习笔记(文件存储:TXT存储)
open()方法常用写入方式:import requestsfrom pyquery import PyQuery as pqurl = 'https://www.zhihu.com/explore'headers = {'authority': 'www.zhihu.com','pragma': 'no-cache','cache-contro...原创 2020-02-11 16:25:32 · 762 阅读 · 0 评论 -
Python爬虫学习笔记(字符串转json报错:DecodeError)
报错:json.decoder.JSONDecodeError: Invalid control character************解决:loads()方法中加入strict属性 json.loads(str,strict=False)同时注意:1.str的书写形式 2.JSON数据以键值对的形式用双引号包围实例:impo...原创 2020-02-11 14:54:32 · 1060 阅读 · 0 评论 -
Python爬虫学习笔记(pyquery)
from pyquery import PyQuery as pqhtml ='''<div id="container"><ul class="list"><li class="item-0">first item</li><li class="item-1"><a href="link2.html">sec...原创 2020-02-09 17:29:47 · 279 阅读 · 0 评论 -
Python爬虫学习笔记(BeautifulSoup补充)
from bs4 import BeautifulSoupsoup = BeautifulSoup('<p>Hello</p>','lxml') #添加lxml解析器print(soup.p.string) #获取p标签中的字符 from bs4 import BeautifulSoupsoup = BeautifulSoup(html,'lxml') #添...原创 2020-02-09 13:33:23 · 205 阅读 · 0 评论 -
Python爬虫学习笔记(XPath选择器【推荐】)
Xpath常用规则Xpath常用运算符from lxml import etreetext = '''一段HTML代码'''html = etree.HTML(text) #初始化构造Xpath解析对象html1 = etree.parse(html,etree.HTMLParser())#解析HTMl代码result = etree.tostring(ht...原创 2020-02-06 21:49:52 · 786 阅读 · 0 评论 -
Python爬虫学习笔记(实例:爬取猫眼电影排行前100)
#抓取猫眼电影排行,以文件的形式保存结果import jsonimport requestsfrom requests.exceptions import RequestExceptionimport reimport time#抓取第一页内容def get_one_page(url): try: #此处的cookies,headers,params需要根据自己浏览器...原创 2020-02-05 14:03:58 · 542 阅读 · 0 评论 -
Python爬虫学习笔记(补充:正则表达式基础:Re库)
常用正则表达式re.match():只能从字符串开头匹配,返回第一和符合的re.match():只能从字符串开头匹配,返回第一个符合的import recontent = 'Hello 123 4567 World_This is a Regex Demo'print(len(content))#^:开头为Hello,\s:匹配空白,\d:匹配数字,后面加{4}表示4个d,/w...原创 2020-02-04 23:20:23 · 211 阅读 · 0 评论 -
Python爬虫学习笔记(Requests库补充)
import requests #引入库r = requests.get('https://www.baidu.com')#得到Response对象print(type(r))#Response类型print(r.status_code)#状态码print(type(r.text))#响应体类型print(r.text)#抓取网页内容print(r.cookies)#抓取cookieimpo...原创 2020-02-04 18:31:36 · 240 阅读 · 0 评论 -
Python爬虫学习笔记(摘记:http请求方法,CSS选择器)
Http请求方法:CSS选择器:原创 2020-02-02 15:08:09 · 116 阅读 · 0 评论 -
Python爬虫学习笔记(Urllib库)
使用urllib库爬虫并不方便,所以在此基础上产生了requests库,了解即可 urllib.request:请求模块urllib.error:异常处理 urllib.parse:url解析模块,提供处理方法 urllib.robotparser: robots.txt解析模块请求模块:urllib.request1、python2import urllib2...原创 2020-01-28 23:53:52 · 262 阅读 · 0 评论 -
Python爬虫学习笔记(selenium库、隐性浏览器PhantomJs)
selenium库的使用:有利于解决JS渲染的问题,Splash库、PyV8库、Ghost.py库亦有同样效果安装:pip install -U selenium 安装Chromedriver调用Chrome浏览器,下载与电脑安装的Chrome版本对应的 Chromedriver放入python根目录下的Script文件夹下 引用:CMD->pythonfrom selenium ...原创 2020-01-28 20:50:11 · 185 阅读 · 0 评论 -
Python爬虫学习笔记(实例:scrapy框架基础)
scrapy爬虫框架命令行格式:scrapy<command>[option][args]常用命令:全局命令startproject语法: scrapy startproject <project_name>[dir]这个命令是scrapy最为常用的命令之一,它将会在当前目录下创建一个名为 <project_name>的项目。set...原创 2020-01-22 23:26:20 · 275 阅读 · 0 评论 -
Python爬虫学习笔记(实例:股票信息定向爬虫及优化)
#要求URL对应的股票数据显性的填充在HTML代码中import requestsfrom bs4 import BeautifulSoupimport tracebackimport redef getHTMLText(url, code="utf-8"): try: r = requests.get(url) r.raise_for_s...原创 2020-01-22 21:17:58 · 418 阅读 · 2 评论 -
Python爬虫学习笔记(实例:淘宝商品信息定向爬虫)
淘宝商品信息定向爬虫先贴代码,后看解析:#淘宝商品信息定向爬虫import requestsimport re#获得页面def getHTMLText(url): try: #headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Fi...原创 2020-01-22 15:48:41 · 2937 阅读 · 8 评论 -
Python爬虫学习笔记(正则表达式基础:Re库)
正则表达式:是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。re 模块使 Python 语言拥有全部的正则表达式功能,安装参考requests。compile 函数根据一个模式字符串和可选的标志参数生成一个正则表达式对象。该对象拥有一系 列方法用于正则表达式匹配和替换。1.常用操作符 操作符 说明 实例 ...原创 2020-01-21 14:12:05 · 578 阅读 · 0 评论 -
Python爬虫学习笔记(实例:中国好大学排名定向爬虫)
#定向爬虫,即指定URL#本实例为 中国好大学排名 定向爬虫import requestsfrom bs4 import BeautifulSoupimport bs4#从网络上获取大学排名网页的内容def getHTMLText(url): try: r = requests.get(url,timeout = 30) r.raise_f...原创 2020-01-20 21:47:25 · 233 阅读 · 0 评论 -
Python爬虫学习笔记(信息的标记与提取)
信息标记的三种形式:点击链接了解详情XML:<name></name;,<name />;<!-- -->Json:”key”:”value”;”key”:[“value1”,”value2”,...];”key”:{“subkey”:”subvalue”,...,...}Yaml:key:value Key:#comment(注释)...原创 2020-01-20 18:06:49 · 173 阅读 · 0 评论 -
Python爬虫学习笔记(BeautifulSoup4库:标签树的上、下、平行遍历,html格式化)
BeautifulSoup4:beautifulsoup库是解析、遍历、维护“标签树”的功能库。BeautifulSoup4的使用依赖于lxml库,安装Beautifulsoup4之前请先安装lxml库,安装参考requests库用法:from bs4 import BeautifulSoupsoup = BeautifulSoup(‘<p>data</p>’,...原创 2020-01-19 20:48:20 · 1448 阅读 · 0 评论 -
Python爬虫学习笔记(基础实例)
实例1:向百度或者360提交关键词并且获得搜索结果百度关键词接口:https://www.baidu.com/s?wd=keyword360关键词接口:https://www.so.com/s?q=keywordimport requestskeyword = "python"try:kv = {'wd':keyword} #360的为kv = {'q':ke...原创 2020-01-18 21:10:44 · 206 阅读 · 0 评论 -
Python爬虫学习笔记(实例:解决网站对爬虫的审查)
由于一些网站会识别并阻止爬虫程序爬取网页的信息,所以需要修改请求报文的头部信息,模拟浏览器访问实例:爬取亚马逊中国的商品页面信息:https://www.amazon.cn/dp/B0785D5L1H/ref=sr_1_1?__mk_zh_CN=%E4%BA%9A%E9%A9%AC%E9%80%8A%E7%BD%91%E7%AB%99&keywords=%E6%9E%81%E7...原创 2020-01-16 17:23:35 · 296 阅读 · 1 评论 -
Python爬虫学习笔记(requests库)
安装:1.运行->CMD->pip install requests2.Pycharm中File->settings->Project Interpreter->+->requests->install package测试运行案例:爬取百度首页源码:import requestsrequest = requests...原创 2020-01-16 15:39:43 · 643 阅读 · 0 评论