xml地图|网站地图|网站标签 [设为首页] [加入收藏]
OS模块操作文件和目录,小白学爬虫连载
分类:编程

#-*-coding:utf-8-*-
import os
import shutil
###############OS模块##############
#获得当前python脚本的工作目录
os.getcwd()
#获得指定目录下的所有文件和目录名
os.listdir("C:\")
#删除一个文件
os.remove(r"H:Ping_Result.txt")
#删除多个空目录
os.remove("H:1\"
#检验给出的路径是否是一个文件
 os.path.isfile("H:\test.txt")
#检验给出的路径是否是一个目录
os.path.isdir(r"H:eclipse")
#判断路径是否是绝对路径
os.path.isabs(r"H:eclipse")
#检验路径是否真的存在
os.path.exists(r"H:eclipse")
#分离一个路径的目录和文件名
os.path.split(r"H:test.txt")
#分离文件的扩展名
os.path.splitext(r"H:test.txt")
#获取路径名
os.path.dirname(r"H:test.txt")
#获取文件名
os.path.basename(r"H:test.txt")
#读取环境变量
os.getenv("path")
#设置环境变量
os.putenv()
#给出当前平台使用的终止符
os.linesep()
#显示正在使用的平台
os.name()
#重命名文件或者目录
os.rename(r"H:soft1", r"H:soft")
#创建多级目录
os.makedirs(r"H:testtext1")
#创建单个目录
os.mkdir(r"H:test1")
#获取文件属性
os.stat(r"H:Anaconda2-4.4.0-Windows-x86_64(2.7).exe")
#修改文件权限与时间戳
os.path.chmod(file)
#获取文件大小
os.path.getsize(r"H:Anaconda2-4.4.0-Windows-x86_64(2.7).exe")
#复制文件夹
shutil.copytree("H:test1","H:test3")
#复制文件
shutil.copyfile(r"H:Tracert_Router.txt", r"H:Tracert_Router_bak.txt")
#移动文件
shutil.move(r"H:Tracert_Router.txt", r"H:Tracert.txt")
#删除目录
os.rmdir(r"H:test3")#仅适用于空目录
shutil.rmtree(r"H:test")#空目录有内容的目录均可以删除
   public string appid = "自己的APPID";
        public string q = "要翻译的文本";
        public string salt = "1435660288";
        public string key = "你的密钥";
        public string from = "你的源语言例如zh";
        public string to = "要翻译成的语言例如en";
        public string GetJson()
        {
            var client = new RestClient("http://api.fanyi.baidu.com");
            var request = new RestRequest("/api/trans/vip/translate", Method.GET);
            request.AddParameter("q", q);
            request.AddParameter("from", from);
            request.AddParameter("to", to);
            request.AddParameter("appid", appid);
            request.AddParameter("salt", salt);
            request.AddParameter("sign", getMd5());
            IRestResponse response = client.Execute(request);
            return response.Content;
        }
        public string sign
        {
            get { return string.Format("{0}{1}{2}{3}", appid, q, salt, key); }
        }
        string getMd5()
        {
            var md5 = new MD5CryptoServiceProvider();
            var result = Encoding.UTF8.GetBytes(sign);
            var output = md5.ComputeHash(result);
            return BitConverter.ToString(output).Replace("-", "").ToLower();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            textBox2.Text = GetResult();
        }
        public string GetResult()
        {
            var lst = new List<string>();
            var content = GetJson();
            dynamic json = JsonConvert.DeserializeObject(content);
            foreach (var item in json.trans_result)
            {
                lst.Add(item.dst.ToString());
            }
            return string.Join(";", lst);
        }

Python如何实现模拟登陆爬取Python实现模拟登陆的方式简单来说有三种:一、采用post请求提交表单的方式实现。二、利用浏览器登陆网站记录登陆成功后的cookies,采用get的请求方式,传入cookies值来实现登陆。三、采用模拟浏览器的方式登陆。三种方式各有利弊,采用第一种方式每次运行程序都是重新登陆,容易造成封账号的情况出现,同时不能用在验证码是JS加载生成的和查看不到提交表单格式这两种情况。我认为第二种方式优于第一种和第三种,大多数情况下推荐使用第二种。对于较大规模的采集,一般的做法是利用大量小号采用第一或第三种方式定期生成大量的cookies,保存起来形成一个自己的cookie池,并维护其有效性,在采集时调用cookie池中的cookies完成爬取。

 

要引用Newtonsoft.Json.dll

本次分享以登陆豆瓣为例讲解前两种登陆方式。  

第一种提交post请求的方式首先讲解第一种方式,其重点有两个:一是找到网站的登陆网址;二是找到post请求提交的表单格式。以豆瓣为例豆瓣的登陆网址为: 这里要注意通讯协议是https而不是http 。接下来解决如何查看网站登陆提交的表单格式。这里使用的是chrome浏览器。

 

在浏览器中打开网址:)

点击快捷键F12打开开发者工具,选中Network,并勾选Preserve log,输入假的账号或密码,不输入验证,如下图所示。

图片 1

点击登陆豆瓣按钮,选中login页面,点击headers,翻到最后面,可以看到formdata,如下图所示:

图片 2

本文由澳门新葡亰手机版发布于编程,转载请注明出处:OS模块操作文件和目录,小白学爬虫连载

上一篇:没有了 下一篇:没有了
猜你喜欢
热门排行
精彩图文