Jadual Kandungan
PHP爬取糗事百科首页糗事
Rumah php教程 php手册 PHP爬取糗事百科首页糗事

PHP爬取糗事百科首页糗事

Jun 13, 2016 am 09:03 AM
Ensiklopedia muka depan

PHP爬取糗事百科首页糗事

突然想获取一些网上的数据来玩玩,因为有SAE的MySql数据库,让它在那呆着没有什么卵用!于是就开始用PHP编写一个爬取糗事百科首页糗事的小程序,数据都保存在MySql中,岂不是很好玩!

说干就干!首先确定思路

获取HTML源码--->解析HTML--->保存到数据库

没有什么难的

1、创建PHP文件“getDataToDB.php”,

2、获取指定URL的HTML源码

这里我用的是curl函数,详细内容参见PHP手册

代码为

 

<span new="" style="font-family:Times">// 获取对应链接的HTMLCODE
function GetHtmlCode($url) {
	$ch = curl_init (); // 初始化一个cur对象
	curl_setopt ( $ch, CURLOPT_URL, $url ); // 设置需要抓取的网页
	curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 ); // 设置crul参数,要求结果保存到字符串中还是输出到屏幕上
	curl_setopt ( $ch, CURLOPT_CONNECTTIMEOUT, 1000 ); // 设置链接延迟
	$HtmlCode = curl_exec ( $ch ); // 运行curl,请求网页
	return $HtmlCode;
}</span>
Salin selepas log masuk
3、引入第三方文件’simple_html_dom.php‘来解析HTML

这里我没有能力使用正则表达式,就在网上海搜,终于找到这个,就像Java使用Jsoup(使用Jsoup解析滁州学院官网获取新闻列表)一样,具体参见BLOG

代码如下

<span new="" style="font-family:Times">function getFmlDataToDB() {
	$link = mysql_connect ( SAE_MYSQL_HOST_M . &#39;:&#39; . SAE_MYSQL_PORT, SAE_MYSQL_USER, SAE_MYSQL_PASS );
	// 获取源码
	$html = str_get_html ( GetHtmlCode ( http://www.qiushibaike.com/ ) );
	
	if ($link) {
		mysql_select_db ( SAE_MYSQL_DB, $link );
		mysql_query ( &#39;set names utf8&#39; );
		// class=article block untagged mb15
		foreach ( $html->find ( &#39;div[class=article block untagged mb15]&#39; ) as $per ) {
			
			$z = null;
			$t = null;
			$w = null;
			$d = null;
			$p = null;
			$ds = null;
			$ps = null;
			
			// //作者
			$author = $per->find ( &#39;div[class=author]&#39; );
			if ($author != null) {
				$a = $author [0]->find ( &#39;a&#39; );
				$z = $a [1]->innertext;
			} else {
				$z = &#39;no author&#39;;
			}
			
			// 头像链接
			
			if ($author != null) {
				$icon = $author [0]->find ( &#39;a&#39; );
				$t = $icon [0]->src->innertext;
			} else {
				$t = &#39;...............&#39;;
			}
			
			// 文章内容
			$content = $per->find ( &#39;div[class=content]&#39; );
			$w = $content [0]->innertext;
			
			// 点赞数
			$vote1 = $per->find ( &#39;div[class=stats]&#39; );
			$vote2 = $vote1 [0]->find ( &#39;span[class=stats-vote]&#39; );
			$vote3 = $vote2 [0]->find ( &#39;i[class=number]&#39; );
			
			$d = $vote3 [0]->innertext;
			// 评论数
			$comments1 = $vote1 [0]->find ( &#39;span[class=stats-comments]&#39; );
			$comments2 = $comments1 [0]->find ( &#39;a[class=qiushi_comments]&#39; );
			$comments3 = $comments2 [0]->find ( &#39;i[class=number]&#39; );
			$p = $comments3 [0]->innertext;
			// 顶 数
			$up_down = $per->find ( &#39;div[class=stats-buttons bar clearfix]&#39; );
			
			$up_down1 = $up_down [0]->find ( &#39;ul&#39; );
			$li = $up_down1 [0]->find ( &#39;li&#39; );
			$up = $li [0]->find ( &#39;span[class=number hidden]&#39; );
			$ds = $up [0]->innertext;
			// 拍 数
			$down = $li [1]->find ( &#39;span[class=number hidden]&#39; );
			$ps = $down [0]->innertext;

		}
	} else {
		echo &#39;数据库链接KO&#39;;
	}
}</span>
Salin selepas log masuk
这个代码写的有点纠结,我试了一下不能直接获取子节点的数据,只能从外层一层一层的剥开解析,如果有新的写法,我会更新,也请各位看官看看。

4、创建数据库,将数据插入到数据库中

这里我使用的SAE中的MySQL,具体的连接方发参见使用PHP连接SAE中的MySql数据库

需要注意的就是编码格式,区要在执行语句前加上这样一句话

<span style="font-family:Microsoft">mysql_query ( &#39;set names utf8&#39; );</span>
Salin selepas log masuk
核心代码如下:

<span style="font-family:Microsoft">			$sql = INSERT INTO `app_bmhjqs`.`db_fml` (`id`, `author`, `icon_url`, `content`, `vote`, `comments`, `up`, `down`) VALUES (NULL, &#39;$z&#39;, &#39;$t&#39;, &#39;$w&#39;, &#39;$d&#39;, &#39;$p&#39;, &#39;$ds&#39;, &#39;$ps&#39;);;
			// 解决乱码
			mysql_query ( &#39;set names utf8&#39; );
			$result = mysql_query ( $sql );</span>
Salin selepas log masuk

这样一来,获取--->解析--->插入就完成了,效果就是运行一次PHP文件,数据库就添加了糗事百科首页上的糗事!我想可不可以写个定时器,每隔一定时间就运行一次代码,这一点在java我可以实现,在php我不会,毕竟是个没长毛的小鸟!百度吧。。。搜到这样的写法

<span new="" style="font-family:Times">// 定时器
// ignore_user_abort (); // run script. in background
// set_time_limit ( 0 ); // run script. forever
// $interval = 30; // do every 15 minutes..

// do {
// 	echo date ( &#39;Y-m-d H:i:s&#39;, time () );
// 	echo &#39;写入数据库&#39;;
// 	//getFmlDataToDB ();
	
// } while ( true );</span>
Salin selepas log masuk
在文件里加上这样的代码,正好在学校断网前,发布到了SAE上,我没有测试!只能等到第二天来查看结果了!

 

今天早上,我迫不及待的打开电脑,打开SAE数据库,情况如下:

额滴神!受不鸟了,赶紧把定时器关掉了,写了个按钮触发事件!这样下去,数据库会被挤满的!

 

 

 

 


Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Arahan sembang dan cara menggunakannya
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk menyediakan halaman utama Google Chrome Bagaimana untuk menyediakan halaman utama Google Chrome Mar 02, 2024 pm 04:04 PM

Bagaimana untuk menyediakan halaman utama Google Chrome? Google Chrome ialah perisian penyemak imbas web yang paling popular hari ini. dan sesetengah orang suka menetapkan halaman utama sebagai enjin carian lain, jadi di manakah ia harus ditetapkan? Seterusnya, editor akan membawakan anda kaedah pantas untuk menyediakan halaman utama Google Chrome saya harap ia boleh membantu anda. Cara cepat menetapkan halaman utama Google Chrome 1. Buka Google Chrome (seperti yang ditunjukkan dalam gambar). 2. Klik butang menu di penjuru kanan sebelah atas antara muka (seperti yang ditunjukkan dalam gambar). 3. Pilih pilihan "Tetapan" (seperti yang ditunjukkan dalam gambar). 4. Dalam menu tetapan, cari "Enjin Carian" (seperti

Apakah yang perlu saya lakukan jika halaman utama Google Chrome berubah kepada 360? Apakah yang perlu saya lakukan jika halaman utama Google Chrome berubah kepada 360? Mar 15, 2024 am 08:16 AM

Apakah yang perlu saya lakukan jika halaman utama Google Chrome berubah kepada 360? Google Chrome ialah penyemak imbas yang ringkas dan mudah, tetapi ramai rakan mendapati bahawa halaman utama yang ringkas telah digantikan dengan halaman utama 360 semasa digunakan Jika mereka ingin memulihkannya kepada gaya asalnya, bagaimanakah ia harus ditetapkan? Di bawah, editor akan menunjukkan kepada anda cara memulihkan halaman utama Google Chrome. Penyelesaian: 1. Mula-mula buka Google Chrome. 2. Jika anda ingin menukarnya kepada lalai, klik tiga titik di penjuru kanan sebelah atas. 3. Klik [Settings] untuk membuka halaman tetapan. 4. Klik [Startup]. 5. Seperti yang ditunjukkan dalam gambar, [Buka halaman web tertentu atau sekumpulan halaman web] di sini ialah URL Navigasi 360. 6. Klik tiga titik di sebelah kanan navigasi 360. 7. Klik [Remove]. ,

UniApp merealisasikan reka bentuk dan kaedah pembangunan halaman utama dan halaman navigasi UniApp merealisasikan reka bentuk dan kaedah pembangunan halaman utama dan halaman navigasi Jul 07, 2023 pm 09:09 PM

Kaedah reka bentuk dan pembangunan UniApp untuk merealisasikan halaman utama dan halaman navigasi 1. Pengenalan UniApp ialah alat pembangunan merentas platform yang dibina pada rangka kerja Vue.js, yang boleh menyusun satu set kod untuk menghasilkan aplikasi untuk berbilang platform. Dalam UniApp, halaman utama dan halaman navigasi ialah dua halaman yang diperlukan semasa membangunkan aplikasi Artikel ini akan memperkenalkan cara mereka bentuk dan membangunkan dua halaman ini dalam UniApp, dan menyediakan contoh kod yang sepadan. 2. Reka bentuk halaman utama dan kaedah pembangunan Struktur halaman Halaman utama UniApp umumnya termasuk bar tajuk, karusel dan klasifikasi

Bagaimana untuk kembali ke halaman utama dari subhalaman html Bagaimana untuk kembali ke halaman utama dari subhalaman html Nov 15, 2023 am 10:33 AM

Kaedah untuk mengembalikan subhalaman html ke halaman utama: 1. Gunakan hiperpautan 2. Gunakan JavaScript 3. Gunakan sejarah pelayar; Pengenalan terperinci: 1. Gunakan hiperpautan, tambahkan hiperpautan dalam sub-halaman, pautkannya ke URL halaman utama, tambahkan pautan "kembali ke halaman utama" di bahagian bawah sub-halaman atau dalam bar navigasi, gunakan teg "<a>" untuk membuat hiperpautan, tetapkan atribut "href" ke URL halaman utama 2. Gunakan JavaScript untuk melaksanakan fungsi kembali ke halaman utama melalui kod JavaScript, dsb.

Senarai fungsi NPC di laman utama 'Adventure Treasure Hunt dan Kalahkan Raja Iblis' Senarai fungsi NPC di laman utama 'Adventure Treasure Hunt dan Kalahkan Raja Iblis' Feb 10, 2024 am 11:00 AM

"Adventure Treasure Hunt and Defeat the Demon King" ialah permainan perang RogueLike dengan latar belakang fantasi Barat Permainan baharu ini dalam talian. Seterusnya, editor akan membawakan anda senarai perkongsian empat fungsi NPC halaman utama dalam "Adventure Treasure Hunt dan Defeat the Demon King". Pemburuan harta karun pengembaraan dan kemudian mengalahkan syaitan Halaman Utama Fungsi NPC memperkenalkan fungsi 4 halaman utama NPC: 1. Kumpulan pengembaraan: naik taraf kumpulan pengembaraan, naik taraf kumpulan pengembaraan musim, naik taraf had atas peralatan (ransel) Selepas pengembaraan, ingat. untuk membersihkan beberapa peralatan buangan Jika tidak, ia akan menduduki ruang grid), dan had atas bilangan aksara boleh dinaik taraf (hanya terdapat 8 slot aksara pada mulanya, dan aksara emas boleh melebihi mereka) 2. Pelatih: Latih aksara (ungu dan emas boleh dilatih), naik taraf

Bagaimana untuk menyediakan halaman utama pelayar 360 Bagaimana untuk menyediakan halaman utama pelayar 360 Apr 07, 2024 pm 01:40 PM

Bagaimana untuk menyediakan halaman utama penyemak imbas 360? Pelayar 360 adalah perisian pelayar web yang sangat selamat Pelayar ini mempunyai fungsi dan perkhidmatan yang kaya. Ramai pengguna suka menggunakan pelayar ini untuk bekerja halaman utama ini, dan ramai pengguna memilih halaman utama yang lebih ringkas Jadi bagaimana kita menetapkan halaman utama 360 Browser? Seterusnya, editor akan memperkenalkan kepada anda cara menyediakan halaman utama penyemak imbas 360 Datang dan lihat. Pengenalan kepada cara menyediakan halaman utama 360 Browser 1. Pertama, anda perlu memasukkan antara muka utama 360 Secure Browser (seperti yang ditunjukkan dalam gambar). 2. Klik pilihan "Tiga Jalur" di penjuru kanan sebelah atas, dan kemudian klik pilihan "Tetapan" yang muncul dalam menu lungsur untuk memasuki antara muka tetapan.

Cara mereka bentuk sistem beli-belah runcit suis Java dengan fungsi karusel pada halaman utama Cara mereka bentuk sistem beli-belah runcit suis Java dengan fungsi karusel pada halaman utama Nov 01, 2023 am 11:20 AM

Cara mereka bentuk sistem beli-belah runcit Java dengan fungsi karusel di laman utama Dengan perkembangan Internet, gaya hidup orang ramai juga sentiasa berubah. Semakin ramai orang memilih untuk membeli-belah dalam talian, termasuk barangan runcit. Bagi memenuhi keperluan pengguna, banyak platform membeli-belah barangan runcit telah melancarkan fungsi tempahan barangan runcit dalam talian. Dalam platform ini, karusel halaman utama adalah salah satu fungsi yang sangat penting. Artikel ini akan memperkenalkan cara mereka bentuk sistem beli-belah runcit suis Java dengan fungsi karusel pada halaman utama. 1. Analisis keperluan fungsional Sebelum mereka bentuk fungsi karusel halaman utama, kita perlu menganalisis dan memahami

Panduan menjawab soalan tentang Ensiklopedia Muzium Condor Si Ling Shui Yuan Panduan menjawab soalan tentang Ensiklopedia Muzium Condor Si Ling Shui Yuan Mar 28, 2024 pm 06:31 PM

Jawapan kepada Ensiklopedia Sejarah Alam Si Ling Shui Yuan ialah ensiklopedia sejarah semula jadi yang menjawab cabaran dalam permainan Jadi apakah jawapan kepada cabaran menjawab ini? Hari ini, editor telah menyusun jawapan kepada soalan dalam ensiklopedia sejarah semula jadi ini untuk semua orang, dan memberikan anda lokasi terperinci jawapan, yang boleh membantu anda menyelesaikan cabaran menjawab soalan dalam ensiklopedia sejarah semula jadi ini dengan lebih baik. . Kandungan terperinci boleh didapati dalam artikel ini Mari kita lihat ensiklopedia sejarah semula jadi dan jawapan kepada semua soalan dan jawapan tentang Si Ling Shui Yuan. Panduan menjawab soalan Ensiklopedia Muzium Condor Si Ling Shui Yuan 1. Mula-mula datang ke lokasi seperti gambar di bawah. 2. Anda boleh menemui watak bernama Meng Gong di sini, dan kemudian berbual dengannya, dan kemudian anda boleh mengambil bahagian dalam cabaran menjawab soalan Silingshuiyuan. 1. Siapakah yang membina Lingshui Yuan? Jawapan: [Wanyan Jing] 2. Penganjur persembahan ditangkap semula

See all articles