卓越飞翔博客卓越飞翔博客

卓越飞翔 - 您值得收藏的技术分享站
技术文章64334本站已运行4115

自动下载百度贴吧图片的PHP脚本

分享一个我经常用的下载百度贴吧的PHP脚本,贴吧有防爬机制,目前的做法是下载前设置cookie,然后下载完一张图片后停1-3秒,脚本基于phpspider,把脚本放到官方的demo目录,然后通过PHP命令行执行即可,代码如下:

ini_set("memory_limit", "10240M");
require_once __DIR__ . '/../autoloader.php';
use phpspidercorephpspider;
use phpspidercorerequests;
use phpspidercoreselector;
 
shezhenba();
 
function shezhenba(){
    $pn = 0;
    $base_url = "https://tieba.baidu.com";
    do{
         
        $page = 'https://tieba.baidu.com/f?kw=%E8%88%8C%E8%AF%8A&ie=utf-8&pn='.$pn;
        print_r($page);
        echo "n";
        $cookies = 'BIDUPSID=6CE1EC442CE375FA4F1E75D997B5ADE8; PSTM=1632754665; __yjs_duid=1_af1282fe895844b6fb1b5aa89c54bb0e1633790836871; BDUSS=diZzNnRlpLbEdQUGtsLWFQMW1YVlZtOEQyY05BeFN1ZkRPd2E2cE90Zk5WUXBpSVFBQUFBJCQAAAAAAAAAAAEAAABx2j4UYTg3MDA4OTQwMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM3I4mHNyOJhS1; BDUSS_BFESS=diZzNnRlpLbEdQUGtsLWFQMW1YVlZtOEQyY05BeFN1ZkRPd2E2cE90Zk5WUXBpSVFBQUFBJCQAAAAAAAAAAAEAAABx2j4UYTg3MDA4OTQwMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM3I4mHNyOJhS1; BAIDUID=5456774366A8C00FF86876486F0DB581:FG=1; BAIDUID_BFESS=5456774366A8C00FF86876486F0DB581:FG=1; ZFY=5eOz6iTAoRSXOQIWQeJoaZPN21JdsF2CCt9BuAy2iCg:C; FEID=v10-b28aceca5f39f5eed5e238c6d308f8895cd85927; __xaf_fpstarttimer__=1672475658503; __xaf_thstime__=1672475658530; __xaf_fptokentimer__=1672475658654; __bid_n=186203427bcc9936ac4207; STOKEN=7facc69ba79da44fc22e5eb5e5a7d07ccc9bae352015d2295cc8f59fa333124f; BAIDU_WISE_UID=wapp_1678945027782_802; arialoadData=false; USER_JUMP=-1; Hm_lvt_98b9d8c2fd6608d564bf2ac2ae642948=1678945026,1679021240; 339663473_FRSVideoUploadTip=1; video_bubble339663473=1; st_key_id=17; FPTOKEN=0WUptM9aTVWCpeGQDJAxkbvuBnYJEvx+UHMK/kHwRiS2ftyac7+BQU5NtXrjEWEwaidVOIKllHETC0hWzCLmjsst7cTDJD05zlR2JsF6QXrlKLmSUexFmPjZx9flG1VFBzc+rWOKKDRQmR+1WCOwPNwmJcZTztaw7/VhluW5e5WsU0al2cQ9ht543kQW3DpcP0nvvkqZTS476NgV/jVCQm/Rw2thUvk+bv07WS8AlhQcikrPkib9kttVCgvqVATfOVqg0cp2JQh2FW+R55z8AZLkjtvoz+qDEmONzN/8ln5LvrPZ64y31/UVZvSPgMygWx109gI8g8eq1y2godJfAlRmyBKnfo0zfWz7fMuCb2ErGg3elsS2BJXtjZQU526tmXdipVtK1o52bp5/XvAHlg==|aYVMzCSV3lKqH2S1CjYxc3CNBWz6g/IOlpi0b2YTnVw=|10|52cebbac2c97988cd9917e0963646e2c; wise_device=0; tb_as_data=4d723ef8e237b364f0ce33fd6b857e94fad1e624a2f04a3d47c1fb5a78d1708f77cba9a498e81b483fe7d2e9c821cbeba9735978f7673b06e8b35220fd8acdd211b9ab9f799c8b8e4c9959c575f82e5c9d6f488807979aa0dca83e1f949a9343; Hm_lpvt_98b9d8c2fd6608d564bf2ac2ae642948=1679021611; XFI=e7572c90-c46e-11ed-a256-dbfb24d09753; ab_sr=1.0.1_ZDYzM2JjYWY4ZjNmNGE3YzdjYzEzNjY3NjliNzhmNTY4ZGZjM2VhYWFkY2Q2ZDI0YzQwMGRhYjlmYmU2MTBlYjIyNTY5NTlhZjkwNTlhYWJjNzcxM2FjMWNjNmVhNmRhNzQ1ZjNiOGE1ZDY4ZDQ0NDY4OGMxZDFlZTA3YmNiMmY2Mzc2Mjc5NmZkMjFiMmM2ZGZkNDc5YjEzNzY1N2U0OTVjNGQyMmZjNGE0N2Q4MDRlMTAxYjIxZWI1ODFmNDQx; st_data=a0de6beb1908da41c2b9442b142823cf0d686519129581863ab7b383dfa3ec057af452673680dbe10f706d9126d8cbccd63ee984d9b58498e045c578ddd2a2677a09ec412fb57188ef388884c070689034bc9d3dedfb1693f057409b498941de; st_sign=d29e0556; BCLID=9729821696371937476; BCLID_BFESS=9729821696371937476; BDSFRCVID=HS8OJeCT5G09-d6fLcPAMeLbZdxIU97TTPjcTR5qJ04BtyCVcmiREG0Ptsp1nZLM_EGSogKK3gOTH4DF_2uxOjjg8UtVJeC6EG0Ptf8g0M5; BDSFRCVID_BFESS=HS8OJeCT5G09-d6fLcPAMeLbZdxIU97TTPjcTR5qJ04BtyCVcmiREG0Ptsp1nZLM_EGSogKK3gOTH4DF_2uxOjjg8UtVJeC6EG0Ptf8g0M5; H_BDCLCKID_SF=tbIJoDK5JDD3fP36q45HMt00qxby26n7Lbb9aJ5nQI5nhKIzb5jtX-trLtc-WPjz5TbA-CI5QUbmjRO206oay6O3LlO83h52aC5NKl0MLPb5qKjkWxvYBUL10UnMBMPe52OnaIbg3fAKftnOM46JehL3346-35543bRTLnLy5KJYMDcnK4-XDTcBDNQP; H_BDCLCKID_SF_BFESS=tbIJoDK5JDD3fP36q45HMt00qxby26n7Lbb9aJ5nQI5nhKIzb5jtX-trLtc-WPjz5TbA-CI5QUbmjRO206oay6O3LlO83h52aC5NKl0MLPb5qKjkWxvYBUL10UnMBMPe52OnaIbg3fAKftnOM46JehL3346-35543bRTLnLy5KJYMDcnK4-XDTcBDNQP; H_PS_PSSID=38185_36561_38410_38113_38127_38398_38170_38290_38235_37937_38314_38382_38285_38041_26350_38281_37881; XFCS=B220D1E2279D5EF5A7FDFBC9FF026AB479D506E9C98AADFC2AFAD41D119C37B8; XFT=9AaMbOWwNuyEUeuVBScwdldPcP4Ya/XM8TSwhDHC1dA=; RT="z=1&dm=baidu.com&si=d0fec9c8-7f18-45e5-b71b-6535e933dede&ss=lfbxw7hz&sl=i&tt=fpc&bcn=https%3A%2F%2Ffclog.baidu.com%2Flog%2Fweirwood%3Ftype%3Dperf&ld=835e&ul=8dka';
        requests::set_cookies($cookies, 'tieba.baidu.com');
        $html = requests::get($page);
        $url = selector::select($html, "//div[@class='threadlist_lz clearfix']");
 
        foreach ($url as $key => $value) {
            preg_match('/href="(.*?)"/', $value,$matches);
 
            if ($matches[1] && "/p/5908153839" != $matches[1]) {
 
                $chtml = requests::get($base_url.$matches[1]);
                $data = selector::select($chtml, "//div[contains(@id,'post_content_')]");   
 
                if(empty($data)) {
                    continue;
 
                }
                foreach ($data as $key => $content) {
 
                    preg_match_all('/src="(.*?)"/', $content,$matches);
 
                    if ($matches[1]) {
 
                        foreach ($matches[1] as $key => $img_url) {
                            if(strpos($img_url,'image_') !== false || strpos($img_url,'i_') !== false || strpos($img_url,'gif') !== false || strpos($img_url,'mp4') !== false){
                                continue;
                            }
                            $arr = parse_url($img_url);
                            $arr2 = pathinfo($arr['path']);
                            print_r($img_url);echo "n";
                            $file = "E:/zhongyiba2/" . $arr2["basename"];
                            if(!file_exists($file)){
                                file_put_contents($file,file_get_contents($img_url) );
                            }
                            // 停几秒,防止触发百度防爬算法
                            sleep(1);
                        }
                         
                    }
                }
 
                 
            }
        }
        $pn += 50;
        // 停几秒,防止触发百度防爬算法
        sleep(rand(1,5));
    }while($pn < 501) ;
}
卓越飞翔博客
上一篇: Python 百度网盘链接失效检测
下一篇: Python 一个简单的加解密脚本
留言与评论(共有 0 条评论)
   
验证码:
隐藏边栏