`
王之子
  • 浏览: 109899 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论
文章列表
    在做采集程序时,有时我们要抓取一些登录才能访问的页面。但是有时即使我们登录成功了,却还是无法抓取相关页面,这是为什么呢?     嗯,最有可能的原因是没把登录成功后的 cookie 一并传递过去。     对于一些安全防范措施不是做得很高的网站,我们可以通过 PHP 的函数 curl_setopt 来登录的。<?php//在指定目录中建立一个具有唯一文件名的文件。如果该目录不存在,tempnam() 会在系统临时目录中生成一个文件,并返回其文件名。 $cookie_file = tempnam('./tmp','cookie'
关于Cookie跨域一个比较形象的例子就是Google Adsense,Google 可以在你的域名设置Cookie,但是你无法访问到Google 设置的Cookie,它只供 Google 访问。 一个简单例子: 步骤1:编辑 hosts 文件,加入测试域名127.0.0.1    www.atest.com 127.0.0.1    www.btest.com 步骤2:文档根目录下,新建 a.php 。内容如下: <iframe src="http://www.btest.com/b.php"></iframe>   步骤3:文档根目录下,新 ...
    我们知道,Session是针对HTTP协议的局限性而提出的一种保持客户端和服务器间保持会话连接状态的机制。     访问网站的来客会被分配一个唯一的标识符,即所谓的会话 ID。它要么存放在客户端的 cookie,要么经由 URL 传递。     Session 的存储方式默认是以文件的形式存放在本地的一个硬盘目录中,所以当Session比较多时,磁盘读取文件会比较慢。还有一点就是对于大站点,它无法实现多台服务器会话的共享。     一个解决方案是用数据库来存取 Session ,就能在不同服务器之间共享 session 信息了。     实现代码下载     引擎 MyISAM 最好 ...
    传统的HTML方式已经难已满足超大文件的上传。别说是100MB,50MB对服务器来说都是非常大的,服务不仅要专门开一个链接等待这个文件上传完毕,还要分配同等大小的内存来保存这个文件对服务器来讲压力相当的大。     在实际网络环境中一般10MB左右的文件都需要借助于控件来实现。一方面是因为国内的网络环境不太稳定,另一方面是从服务器的负载方面考虑。     像QQ邮箱中的超大附件上传功能,115网盘中的超大附件上传控件,华为网盘(DBank),金山快盘他们都是使用控件来实现超大文件上传功能的。     他们通过控件将一个大文件,比如1G划分成许多的小块,每一小块大约是128KB,然后循环 ...
    使用 PHP 的 cURL 库去抓取网页时,有时会遇到 HTTP 服务器需要进行身份验证的情况,这时候该怎么设置呢?     <?php     $url = "http://192.168.0.100:8080/JM-PLATFORM/sms/MobsetSendSMS/sysId/oa/mobileNum/{$mobile_phone}/message/{$message}";     $tmp = sys_get_temp_dir();    $cookieDump = tempnam($tmp, 'cookies');    $ch = cur ...
今天用 mysql 的一个普通用户 admin 用 mysqldump 工具进行备份的时候,出现以下错误 mysqldump: Got error: 1044: Access denied for user 'admin'@'localhost' to database 'mydatabase' when using LOCK TABLES 后来查阅网上资料,终于得到解决办法。只需添加 --single-transaction 选项。 $ mysqldump --single-transaction -u admin -p mydatabase > mydatabase.sql ...
很多人可能不知道,动态网页在浏览器也是可以缓存的。下面就以 PHP 脚本为例子,阐述如何设置动态网页在浏览器缓存   <?php //设置网页过期时间为1小时 $duetime = 3600*24*30; //获取浏览器会向服务器传送 Last-Modified 报头 $modify_time = $_SERVER['HTTP_IF_MODIFIED_SINCE']; //当浏览器在设置时间之内再次访问该网页时,发送 HTTP 304 的状态码,这样就节省了传输数据量。 if(strtotime($modify_time) + $d ...
    今天用 curl_init 函数抓取搜狐的网页时,发现采集的网页时乱码,经过分析发现原来是服务器开启了gzip压缩功能。只要往函数 curl_setopt 添加多个选项 CURLOPT_ENCODING 解析 gzip 就可以正确解码了。     还有如果抓取的网页时 GBK 编码,但是脚本确是 utf-8 编码,还得把抓取的网页再用函数 mb_convert_encoding 转换下。 <?php $tmp = sys_get_temp_dir(); $cookieDump = tempnam($tmp, 'cookies'); $ur ...
安装Apache woqilin@woqilin-desktop:~$ sudo apt-get install apache2 安装Mysql woqilin@woqilin-desktop:~$ sudo apt-get install mysql-server 安装mysql客户端工具(可选) woqilin@woqilin-desktop:~$ sudo apt-get install mysql-admin mysql-client mysql-gui-tools-common mysql-query-browser ...
电脑在win 7 系统下硬盘安装了64位的Ubuntu 10.10,但是系统却无法辨别正确的分别率,用Google搜了一些设置分别率的方法,编写xorg.conf 简单三行解决Ubuntu分辩率不可调的问题,设置后连系统都进不了,也无法进入命令行界面。最好想到的解决方案就是用Ubuntu 10.10文件重新进入livecd模式,把 xorg.conf 文件给删了。重要一点就是别把livecd模式下的文件系统跟安装好Ubuntu的文件系统给搞混淆了。
Global site tag (gtag.js) - Google Analytics