分类目录归档:python

Python抓取微博评论


写在前面

一直以为微博的东西比较好搞,没想到还是有点坑。新浪把评论的模块保存在一个json字典里,真的是够了。。。前20页可以轻易爬取,21页以后需要获取前一页最后一个评论的ID以及已经展示的评论总数。

包和全局变量

#时间管理带师
import time
#网页请求
import requests
#解析网页
from bs4 import BeautifulSoup as bs

#统计已经展示的评论数量
num = 0
#请自行登录新浪获取cookie
cookie = {}
#请求头
headers = {
    'sec-fetch-dest':'empty

Read more

Scrapy框架的自定义配置


多spider

创建多个spider,需要为每个spider分配不同的管道(不要在settings.py中添加管道),首先在pipelines.py中定义不同的类,然后修改对应的py文件:

class PythonSpider(scrapy.Spider):
    name = 'csdn'
    allowed_domains = ['www.csdn.net']
    start_urls = ['https://www.csdn.net/nav/python']
    custom_settings = {
        '

Read more

Python模拟二维码登录百度


写在前面

前段时间写了利用BDUSS到达百度首页,这一次尝试使用二维码模拟登录,目前网上能搜到的相关内容基本失效了,但是思路基本不变,无非是百度改了些参数。本文较为复杂,要求对python的requests模块以及Chrome审查元素有一定了解,我不确定自己是否能完全讲明白,讲多少是多少吧,各位看官请坐。

查找接口

二维码地址

打开Chrome浏览器,清理掉baidu.com下的所有cookie,如果没有则忽略。打开百度首页,F12审查元素,在右上角点击登录,切换到二维码登录,可以看到NetWork里面出现了一些相关内容:



查看getqrcode?lp=pc:



这里的imgurl代

Read more

Python模拟登录百度贴吧(requests)


写在前面

这两天本打算做两件事,其一是仅利用BDUSS实现模拟登录百度,再进一步请求到贴吧首页,其二是关于朴素贝叶斯分类器的,拉普拉斯平滑是很重要的内容,需要对文章进行补充。但第一件事就花了两天,而且得到的结果与预期并不相符,暂且记录一下过程。拉普拉斯平滑近期会补充。

思路分析

前几天写了贴吧自动灌水脚本,是用完整的cookie请求的,而我想用最少的信息做成这件事,把cookie精简再精简,是否可以只利用某一字段就实现呢?目前未探究这个问题,而选择了另外一个方向,我尝试使用Cookie中的BDUSS字段请求贴吧首页,并不能返回登录状态的信息,退而求其次,请求百度首页,这一次在返回的信息中找到了

Read more

朴素贝叶斯分类器


写在前面

无聊的时候总要找点事情做,今天就搞了搞朴素贝叶斯分类,训练样本集为playtennis,此案例是我大学期间在一本名为《数据挖掘》的书中看到的,比较简单,当时是用matlab做的,根据算法原理写了好多for循环,今天用python试了试,原本以为sklearn里面会有对应的方法,实际上也确实有,但测试集包含的数据量太少,训练得到的模型精度非常低,所以根据朴素贝叶斯分类的原理写了代码,在此记录一下。

算法介绍

该算法主要依据贝叶斯公式,是一种有监督的机器学习,算法思想真的很朴素!具体参考下面链接。


  1. 带你理解朴素贝叶斯【知乎】
  2. 朴素贝叶斯分类器【百度百科】

数据集

Outloo

Read more

写了一个贴吧自动灌水脚本


写在前面

无聊的时候总想搞点事情,自己没有什么思路,打开csdn看到别人的自动评论脚本,我想了想,不如搞一个贴吧自动灌水脚本。

主要代码

用到的包

#发起网页请求
import requests
#这个是配置文件,自己写的,主要保存cookies还有灌水的内容
import comment_conf as settings
#时间、随机、正则表达式
import time,random,re
#解析网页
from bs4 import BeautifulSoup as bs

浏览器标识符(请求头):

#这个用来抓取已有的楼层信息,不需要的话删掉
headers_get = {
    &qu

Read more

Python+OpenCV调整视频分辨率


写在前面

今天帮老哥处理视频的时候发现分辨率不一致,需要处理一下,可以借助python+opencv来实现,很方便。

获取视频信息

import cv2
#加载视频
videoCapture = cv2.VideoCapture('video.mp4')
#读取视频fps(帧率)
fps = videoCapture.get(cv2.CAP_PROP_FPS)
#读取视频的宽度
Frame_Width = videoCapture.get(cv2.CAP_PROP_FRAME_WIDTH)
#读取视频的高度
Frame_Height = videoCapture.get(cv2

Read more

python爬取新闻直播间快讯


写在前面

今天上班的时候老哥问我能不能把cctv的视频下载下来,本着能播放就能下载的原则,我打开了F12。。。。回归正题,想获得完整的视频下载地址是有些难度的,不过把所有的视频流按顺序写进同一个二进制文件也是可行的办法。顺便尝试了一下从命令行获取参数,以及在下载过程中使用进度条。

用到的包

#爬取模块
import requests
#正则表达式、文件夹、系统变量
import re,os,sys
#进度条相关
from tqdm import tqdm

主要代码

根据参数获取url地址(这里提供一个url样例,是播放页面的地址)

if len(sys.argv) == 2:
    url

Read more

记一次反爬虫破解


写在前面

参考文献来自csdn梦想橡皮擦,本次尝试的是网易有道词典的接口,这类教程网上有很多,但大多过时了,也不敢确定本文的有效性能保持多久,所以记录代码的同时,一并记录下方法。有道的反爬原理是生成本地随机变量进行验证,如果不能摸清随机变量的生成规则,就只能收到{'errorcode':'50'},另外,有道对请求头也有一定要求。

用到的包

#发起网页请求
import requests
#对字符进行md5加密
import hashlib
#获取时间戳
import time
#生成随机数
import random

获取随机变量

#translate为要翻译的内容
def generat

Read more