如何抓取BT天堂电影数据
晚上休息,想弄两部好看的电影看看,
找了半天没找到想看的,
想到之前有个人爬知乎的用户数据,突发奇想,
没事把BT天堂的电影信息爬下来,下次阔以直接查数据库。
只能说闲的蛋疼,哈哈,还能码下代码
^_^
1.抓取网站html源码
<span style="font-size:24px;">$url = "www.bttiantang.cc"; $html = shell_exec("curl $url");</span>
2.获取总页数,电影总数(正则匹配)
<span style="font-size:24px;">preg_match("/<span class='\"pageinfo\"'>.*?/", $html, $pageCount); preg_match_all("/\d{1,10000}/",$pageCount[0],$pageCount);</span></span>
3.抓取电影信息(正则匹配信息)
<span style="font-size:24px;">preg_match("/\d{4}\/\d{2}\/\d{2}/" , $pageInfo[0][$i], $updateTime); preg_match("/<font color='\"#FF6600\"'>(.*?)<i>/" , $pageInfo[0][$i], $movieName); preg_match("/<strong>(\d{1})/" , $pageInfo[0][$i], $movieScore_int); preg_match("/<em class='\"fm\"'>(\d{1})/" , $pageInfo[0][$i], $movieScore_decimal); preg_match("/href=\"(.*?)\"/" , $pageInfo[0][$i], $movieUrl); preg_match("/<p class='\"des\"'>(.*?)/" , $pageInfo[0][$i], $actor); </p></em></strong></i></font></span>
4.插入数据库,大功告成
总体来说,php抓取的速度还是蛮快的,4min不到,采集2w多条信息。
start:01:22:54
end:01:26:11
附数据库截图:
附源码:
<?php $url = "www.bttiantang.cc"; $html = shell_exec("curl $url"); preg_match("/<span class=\"pageinfo\">.*?/", $html, $pageCount); preg_match_all("/\d{1,10000}/",$pageCount[0],$pageCount); $pageSize = intval($pageCount[0][0]); $movieCount = $pageCount[0][1]; $conn = mysql_connect('***','***',''); mysql_select_db('***',$conn); mysql_query('set names utf8',$conn); for($j=1;$j.*?/s", $movieHtml, $pageInfo); for($i=0;$i<count preg_match ad if str_replace color='\"#FF6600\"'>(.*?)<i>/" , $pageInfo[0][$i], $movieName); /*****same conditions*****/ if(empty($movieName)) preg_match("/<b>(.*?)<i>/" , $pageInfo[0][$i], $movieName); if(empty($movieName)) preg_match("/<b>(.*?)/" , $pageInfo[0][$i], $movieName); /************************/ $movieName = $movieName[1]; preg_match("/<strong>(\d{1})/" , $pageInfo[0][$i], $movieScore_int); $movieScore_int = $movieScore_int[1]; preg_match("/<em class='\"fm\"'>(\d{1})/" , $pageInfo[0][$i], $movieScore_decimal); $movieScore_decimal = $movieScore_decimal[1]; $movieScore = floatval($movieScore_int.'.'.$movieScore_decimal); preg_match("/href=\"(.*?)\"/" , $pageInfo[0][$i], $movieUrl); $movieUrl = $movieUrl[1]; preg_match("/<p class='\"des\"'>(.*?)/" , $pageInfo[0][$i], $actor); $movieActor = str_replace("<em>",'',str_replace("</em>",'',$actor[1])); mysql_unbuffered_query("insert into movie (name,actor,url,update_ts,score) values ('$movieName','$movieActor','$movieUrl',<span style="white-space:pre"> </span>'$updateTime','$movieScore')"); } } ?></p></em></strong></b></i></b></i></count>
本电影信息属于从BT天堂抓取,并未涉及机密信息,因此本人不承担任何法律责任!
若有相关电影信息涉及您的版权或知识产权或其他利益,请告知,确认后会尽快删除。
版权声明:本文为博主原创文章,未经博主允许不得转载。
以上就介绍了如何抓取BT天堂电影数据,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas











php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

请问如何修改url某一参数的参数值呢?是要拆开了再拼回去吗?那么请问如何修改url某一参数的参数值呢?是要拆开了再拼回去吗?http://127.0.0.1/myo/newuser.php?mod=search&type=fastone比如现在我要修改mod=new要怎么做呢?------解决方案--------------------发送了请求

Semua orang menantikan keluaran Windows 1123H2 hari ini. Malah, Microsoft baru sahaja melancarkan kemas kini kepada pratonton keluaran, iaitu saluran terdekat sebelum peringkat keluaran rasmi. Dikenali sebagai Build 22631, Microsoft berkata mereka sedang melancarkan aplikasi sembang penjenamaan semula baharu, pautan telefon dan memainkan bersama-sama widget yang telah diuji pada saluran dalaman lain sejak beberapa bulan lalu. "Kemas kini baharu ini akan mempunyai cawangan servis dan asas kod yang sama seperti Windows 11 versi 22H2 dan akan terkumpul dengan semua ciri yang baru diumumkan, termasuk Copilot dalam Windows (pratonton)," janji Microsoft. Pegawai Redmond selanjutnya

Konsep 1. Pelbagai operasi Padanan boleh digunakan untuk menentukan sama ada Predikat yang diberikan memenuhi unsur Strim. 2. Operasi padanan ialah operasi terminal dan mengembalikan nilai Boolean. Instance booleananyStartsWithA=stringCollection.stream().anyMatch(s)->s.startsWith("a"));System.out.println(anyStartsWithA);//truebooleanallStartsWithA=stringCollection.stream().

Ambil perhatian bahawa padanan digunakan untuk operasi pemadanan dan nilai pulangannya adalah daripada jenis boolean. Melalui padanan, anda hanya boleh mengesahkan sama ada unsur tertentu wujud dalam senarai. Contoh // Sahkan sama ada terdapat rentetan dalam senarai bermula dengan a dan padankan yang pertama, iaitu return truebooleananyStartsWithA=stringCollection.stream().anyMatch((s)->s.startsWith("a")) ;System.out .println(anyStartsWithA);//true//Sahkan sama ada rentetan dalam senarai

Konsep 1. Pelbagai operasi Padanan boleh digunakan untuk menentukan sama ada Predikat yang diberikan memenuhi unsur Strim. 2. Operasi padanan ialah operasi terminal dan mengembalikan nilai Boolean. Instance booleananyStartsWithA=stringCollection.stream().anyMatch(s)->s.startsWith("a"));System.out.println(anyStartsWithA);//truebooleanallStartsWithA=stringCollection.stream().

图片消失如何解决先是图片文件上传$file=$_FILES['userfile']; if(is_uploaded_file($file['tmp_name'])){$query=mysql_query("INSERT INTO gdb_banner(image_src ) VALUES ('images/{$file['name'

不用数据库来实现用户的简单的下载,代码如下,但是却不能下载,请高手找下原因,文件路劲什么的没问题。
