- 博客(80)
- 收藏
- 关注
原创 pythonscrapy——crawlspider&cookie&post发送
pythonscrapy——crawlspidercrawlspider命令——scrapy startproject xxxx,scrapy genspider -t crawl xx xxxxxx爬取古诗名字:将没有title的处理当url的规律适合用正则来爬取的话,用crawlspider会好详情页的名字在这个:结果:不仅爬出来了,也把不用的数据也爬了因为他们的url也是这样的cookie模拟登录——qq空间需要在parse之前就把cookie放上去——用
2021-06-13 05:08:19
865
原创 pythonFlask项目入口文件设置
前后端不分离前后端分离创建虚拟环境-r可以把整个要安装的文件拖进来就可以都安装了manage项目入口文件mysql连接配置redis配置把配置文件放进来——app.config.from_object(Config)数据库和redis链接flask——session设置,可以看官网简介https://flask-session.readthedocs.io/en/latest/将用户信息seeion保存在redis这里出现一个WARNING此时打开网
2021-06-10 23:09:17
640
原创 python scrapy4——middlewaves
python scrapy4——middlewavesmiddlewaves用ua随机请求头做案例爬虫文件:——没有打开请求头结果:打开请求头下结果:使用虚假请求头:方法一:将虚假请求头放在一个列表里面,然后random.choice()需要打开下载中间器:结果多次请求:用到新的参数:dont_filter =True(不去重)第二种方法:用fake_useragent import UserAgent先创建一个UserAgent的对象——ua
2021-06-06 04:19:36
483
原创 python scrapy 案例练习
案例练习爬取职位+翻页爬取指向的只是数字不是url地址页面分析ajax接口找寻——Network里面看打开网址:第一页:https://careers.tencent.com/tencentcareer/api/post/Query?timestamp=1622714101653&countryId=&cityId=&bgIds=&productId=&categoryId=&parentCategoryId=&attrI
2021-06-04 01:39:33
261
原创 python Scrapy2古诗爬取
python Scrapy2古诗爬取setting配置页面分析数据分析实现步骤在start文件运行结果:获取内容解决方法:’’.join().strip(),strip是把列表转为字符串,’‘是把不同诗句换成’'连接...
2021-06-03 02:46:43
293
2
原创 pythonFlask框架钩子函数和小项目实践
常用的钩子函数before_first_request_处理第一次请求之前执行from flask import Flaskapp =Flask(__name__)@app.route('/')def index(): print('首页') return '首页1'# 在处理第一次请求前执行@app.before_first_requestdef before_first_request(): print('在我访问路由之前访问的第一个函数')if
2021-06-02 18:22:14
258
1
原创 python scrapy介绍+豆瓣案列
python scrapy介绍scrapy命令cd路径下,scrapy startproject 命名命名的doubanspider.py:item文件:middlewaves:pipline:setting:scarpy执行命令1——终端输入scrapy crawl 名字运行结果解决:复制一个headers放在setting的请求头处加了请求头后爬取豆瓣的标题用xpath,之前用的是from lxml i
2021-06-01 17:25:19
160
2
原创 爬虫练习csv录入
爬虫练习csv录入发现应用程序是ajax动态加载,可以用selenuim或者分析页面来源,可以在network找XHR或者在ALL找打开第一个url普通(非多线程下的爬虫案例+csv保存)# 发现应用程序是ajax动态加载,可以用selenuim或者分析页面来源# 可以再network找XHR或者在ALL找# 点开一个,url https://app.mi.com/details?id=com.kuaiyin.live# XHR 里的packageName是这个
2021-05-31 16:22:32
67
原创 ajax动态加载快速查看(XHR)
发现应用程序是ajax动态加载,可以用selenuim或者分析页面来源,可以在network找XHR或者在ALL找打开第一个url
2021-05-31 16:07:12
276
原创 python报错文档+解决方法
python报错文档+解决方法在写代码途中突然按到某些快捷键的问题+解决方式如:输入法繁简体转换具体解决方式如下:
2021-05-31 16:02:00
141
原创 python多线程2
查看线程数量——enumerate()通常用index代表索引enumerate()在threading线程库的作用——threading.enumerate()加入time.sleep()观察import threading# threading.enumerate()def demo1(): for i in range(5): print('我是demo1---%s' % i) time.sleep(1)def demo2():
2021-05-31 15:13:55
163
1
原创 flask的Flask-Script和Flask-Migrate和表单验证
Flask-Scriptflask——scriptfrom flask_script import Managerfrom flask_sqlalchemy import SQLAlchemyfrom flask_sqlalchemy import SQLAlchemyfrom flask import Flaskfrom sqlalchemy import create_enginefrom sqlalchemy.ext.declarative import declarativ
2021-05-28 04:44:26
245
2
原创 python多线程介绍
多线程介绍线程方法一:函数形式import threadingimport timedef demo(): print('hello 我是子线程')# 小建议:凡是程序一上线程,复杂度就上升了,出bug的机会多了# 线程方法一:if __name__ == '__main__': # target要传递一个函数 for i in range(5): t =threading.Thread(target=demo) time.s
2021-05-25 00:29:04
65
原创 flask框架表关系一对多与flask-sqlalchemy插件使用
flask框架表关系一对多一对多查询用的是relationshipfrom sqlalchemy import create_enginefrom sqlalchemy import Column, Integer, String, TEXT, FLOAT, ForeignKeyfrom sqlalchemy.orm import sessionmaker, relationship,backreffrom sqlalchemy.ext.declarative import declarati
2021-05-24 20:38:25
156
1
原创 python-SQLAlchemy
SQLAlchemy属性常用数据类型id是唯一的,即使删除了id=2的字段,再增加也会是id=3创建一个表——article1添加数据——seeion.commit()查找所有数据——数据需要遍历来取得查找麻烦的话可以添加魔法方法__str__func.count(统计行数量)——需要导入:from sqlalchemy import func这个是mysql语句需要加上first()func.avg 求平均值func.max 求最大值func.sum
2021-05-22 01:33:18
356
1
原创 python csv写入注意
csv写入注意:以猫眼为例from selenium import webdriverimport csv# 创建chrome设置对象 程序没有问题在去设置 无界面模式options = webdriver.ChromeOptions()# 设置无界面功能 --headless 浏览器无界面 --xxxxoptions.add_argument('--headless')driver = webdriver.Chrome(options=options)driver.get('http
2021-05-20 01:33:23
107
1
原创 python—selenuim行为链练习
猫眼电影用senlenuim爬取senlenuim拿到网页源码——page_sourcefrom selenium import webdriverfrom selenium.webdriver import ActionChainsimport timedriver = webdriver.Chrome()driver.get('https://www.baidu.com/')# driver.page_source 获取html源代码html = driver.page_sourcep
2021-05-19 02:46:51
498
2
原创 Flask框架——MySQLAlchemy
SQLAlchemy介绍和基本使用链接数据库创建表只能取一行数据from sqlalchemy import create_enginefrom sqlalchemy.ext.declarative import declarative_basefrom sqlalchemy import Column,Integer,Stringfrom sqlalchemy import create_engine# 链接数据库# 地址 数据库名字 端口 用户名 密码#
2021-05-18 16:52:47
169
1
原创 pythonselenuim练习
12306练习webdriver.Chome()要放在全局,放在类当中会触发垃圾回收机制当登录的时候,为了方便查看,用显示等待,当触发了页面包含(url_contains),打印登录成功from selenium import webdriverfrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.suppo
2021-05-17 19:58:18
74
原创 flask框架include语句
include语句list.html内容头部尾部信息都需要的时候,不用include就需要都再写一次代码使用include就只需要新开一个文件夹,创建头部、尾部信息html就可引用引用include——{%include ‘文件夹名称/html名称.html’}即使只是写include也可以赋值set语句只在html里面设定name,不在函数设置——用set当set设置在全局中,即使函数中有了username的设置,也会按set,除非用with包裹字符串
2021-05-15 03:34:26
324
2
原创 flask框架发表时间练习
基本框架from flask import Flask, render_template, url_for, views, jsonifyimport timefrom _datetime import datetimeapp = Flask(__name__)if __name__ == '__main__': app.run(debug=True,port=8000)首页设置@app.route('/')def index(): return '首页'使用函数方
2021-05-14 19:18:03
78
原创 python ajax介绍
fake_useragent 虚假请求头的使用需要安装模块——fake-useragentfrom fake_useragent import UserAgentua =UserAgent()print(ua.random)ajax介绍分析ajax数据接口案例——百度贴吧图片爬取打开贴吧图片找到图片的url复制地址到源码中查看是否存在,如果存在直接请求该url,不存在则需要分析数据接口不存在该源代码中这时候打开Network,打开XHR到respons
2021-05-13 21:59:28
222
原创 TypeError: a bytes-like object is required, not ‘Response‘
爬取图片写入的是否突然爆错了报错原因尝试增加encoding=‘utf-8’原因——rb+操作时不支持指定encoding参数问题在于url为图片格式,所以应该增加content
2021-05-13 20:59:58
4472
原创 python flask框架
jinjia2模板过滤器from flask import Flask,render_templateapp =Flask(__name__)@app.route('/')def index(): context ={ 'name':'engine', 'age':18, } return render_template('index.html',**context)if __name__ == '__main__':
2021-05-13 18:04:08
268
2
原创 python当数据都在一个字典里,怎么用csv来录入的方法
需求:从12306中获取车站编码获取url结果:寻求规律方便编译这里找不到正则的规律,所以上百度找到了相应的正则结果是一个列表里面嵌套的元组用字典方式转换发现了问题:在此时,不是分成了若干个字典,而是数据都在一个字典中,这样子写入文件会报错还有另一个报错信息:指的是表头只有两个,而数据有很多个,不能解析问题:数据都被包裹在一个大字典了,而不是分成不同的字典,导致无法解读,而如果只是简单的写入文件,也不行解决方法:用enumerate()函数——指定索引值,通过遍历来获
2021-05-12 03:24:58
196
2
原创 FlaskURL视图&重定向
构造url(url_for)from flask import Flask,url_forapp =Flask(__name__)@app.route('/')def hello_world(): print(url_for()) return 'hello world'@app.route('/list/<lid>')def article_list(lid): return 'article{}'.format(lid)if __name__ ==
2021-05-10 22:10:44
92
原创 python selenuim 行为链
selenuim行为链具体url参考:http://selenium-python.readthedocs.io/api.html行为链事例from selenium import webdriverfrom selenium.webdriver import ActionChainsdriver =webdriver.Chrome()driver.get('https://www.baidu.com/')# 定位到输入框inputTag =driver.find_element_
2021-05-10 20:55:22
261
1
原创 Flask简介
虚拟环境介绍——Django与Flask版本不兼容,需要用到虚拟环境创建虚拟环境创建成功pipfile文件夹内容环境找寻——找到虚拟环境创建的文件夹flask第一个介绍from flask import Flaskapp =Flask(__name__)# http://127.0.0.1:5000/@app.route('/') # 装饰器,映射视图函数def hello_flask(): # 视图函数 return 'hello flask'
2021-05-08 01:51:31
187
3
原创 python selenium
selenium介绍加载驱动 PhantomJSdriver = webdriver.PhantomJS()需要把PhantomJS加载到环境变量或者当前目录把驱动放到path环境变量中,python解析器中打开url模拟在百度输入框写入找到输入框的element,找到id=‘kw’的输入框点击事件获取新URLchromedriver输入url——.get()打开三秒后自动关退出驱动(关闭所有窗口)——.quit()关闭当前窗口——.close()
2021-05-07 17:15:58
72
原创 python 代理ip设置例子
代理ip设置 proxies =proxy 还可以import random,随机抽选代理池ip,random.choice()
2021-05-04 21:06:03
85
原创 python bs4练习
解析数据用bs4找寻数据广西数据在这一条td中南宁开始在第二个tdtable标签代表一个省的所有数据整个地区的数据在这个类里# 获取全中国所有城市名字、温度保存到csv文件# http://www.weather.com.cn/textFC/hb.shtml 华北地区# http://www.weather.com.cn/textFC/db.shtml 东北地区# http://www.weather.com.cn/textFC/hd.shtml 华东地区# http://www
2021-05-04 21:04:25
280
5
原创 python bs4 2
cssselect()方法——标签找——select(‘标签名’)select()方法——类名找——(.class)select()方法——id找——#idselect()方法——组合方式——(标签 #id)中间有空格select()方法——通过父标签找下面内容select()找数据——[索引].get_text()练习修改文档树改标签——.name=’’,改属性——[类]=’’改数据——string=’’append增加值删除...
2021-05-04 20:06:36
96
原创 python bs4 入门
python bs4 BeautiSoup入门结果:prettify():直接打印相关内容有多个相同标签时找到三个hrefbs4 对象种类bs4 tag标签找标签属性——attrsNavigableString可导航的字符串soup对象comment 注释遍历文档树contents chlidren descendentsstring strings stripped strings–把多余空格去掉string——获取标签里面的内
2021-05-03 02:49:51
230
3
原创 python——xpath
xpath介绍节点关系xpath快捷键chromelxml模块使用把数据存储到字典并保存csv换一种方法取result的索引——index()结果取到了:豆瓣 top250 翻页爬取 链接、名字、评分、引言拼接字符串结果出来有[],所以可以进行处理索引取值,做非空判断f’{}'和{}.format()区别代码总汇:from lxml import etreeimport csvimport
2021-05-02 19:03:59
122
1
原创 python简易爬虫
爬取喜马来雅男频小说这几本import requestsimport reimport csvheaders = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.104 Safari/537.36','Cookie':'testcookie=yes; Hm_lvt_bc3b748c21fe5cf393d26c
2021-04-30 17:25:05
82
1
原创 python字节流字符串转换
python字节流bytes转换字符串strimport requests# # 发起请求获得响应 <Response [200]>res = requests.get('https://www.yuque.com/books/share/6c1173d1-0b5c-461e-a389-06392f698852/aqvx0r')# print(res)# 直接读取res.encoding ='utf-8'print(res.text) # 字符串数据 文本 有乱码python
2021-04-30 02:23:33
1570
原创 vue基础6——自定义组件v-model
上次复习自定义组件——v-model——与v-bind不同不能正常加减<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, ini
2021-04-30 01:03:16
192
3
原创 python正则表达式下
re模块常用方法:compile使用标志位(flags)re.I——大小写不敏感(都识别)findall 都查询,match、search只能查询一个注意:findall不用加group()拿到列表内容后,可以用for循环遍历内容,也可以直接提取注意:如果findall下是空集,要看看是不是正则写错了re.split 表达式:split(pattern, string, maxsplit=0, flags=0)sub() 表达式:sub(pattern, rep
2021-04-29 02:56:15
206
1
原创 python爬取图片
baidu图片打开 ——发现是瀑布流,此时可以改成分页模式将index改为flip就可以改为分页模式了查看网页源代码,查询objURL——最清晰打开后续网页url就可以得到图片,获取url后可以requests了示例此时:只爬取了一张图片,那么通过不同url的切换可以爬取多种图片了如果图片地址末尾没有jpg可以自己加# 思路:拿到目标url 获取网页源码 获取图片url地址 保存图片url ='https://image.baidu.com/search/flip?tn=ba
2021-04-29 01:12:21
205
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人