1. 首页
  2. Python

python编程学习之面向函数初接触!这次我们来抓取QQgame信息吧!

“u003Cdivu003Eu003Cpu003E作为一个长期坐办公室的闲人来说,QQ游戏一度是我们的主要消磨时间的工具,当然现在改成python了,哈哈。u003Cu002Fpu003Eu003Cpu003Eu003Cimg src=”http:u002Fu002Fp9.pstatp.comu002Flargeu002F66c900011eaf5dcba8d6″ img_width=”1280″ img_height=”854″ alt=”python编程学习之面向函数初接触!这次我们来抓取QQgame信息吧!” inline=”0″u003Eu003Cu002Fpu003Eu003Cpu003E今天我们就来抓取下QQgame下所有游戏的页面地址和简介,然后分类保存本地吧!u003Cu002Fpu003Eu003Cpu003E这里我们用面向函数的模式试试写我们的爬虫。u003Cu002Fpu003Eu003Cp class=”list_Paragraph”u003E1. 首先是分析url,主页地址:开发者工具,u003Cu002Fpu003Eu003Cpu003E这里我们可以看到有很多的分页,仔细看看就会发现主要是分2大块:热门游戏u002F最新 游戏(这俩url竟然是一样的,腾讯的程序员你们是有多懒。。。)和分类游戏(棋牌、网页、单机、街机等等),其实只需要爬后者就可以,但是各个分类下游戏页面并不多,热门游戏里面有500多款呢,所以干脆一起抓取下来,然后分类保存就好!u003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002F66c80002184ce909f138″ img_width=”288″ img_height=”374″ alt=”python编程学习之面向函数初接触!这次我们来抓取QQgame信息吧!” inline=”0″u003E找到游戏分类后,再进入随便一个分类页面,来看看网页构成。u003Cbru003Eu003Cu002Fpu003Eu003Cp class=”list_Paragraph”u003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002F66c400038a680d55458d” img_width=”554″ img_height=”676″ alt=”python编程学习之面向函数初接触!这次我们来抓取QQgame信息吧!” inline=”0″u003Eu003Cu002Fpu003Eu003Cp class=”list_Paragraph”u003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002F66c6000352d60ffb613b” img_width=”295″ img_height=”421″ alt=”python编程学习之面向函数初接触!这次我们来抓取QQgame信息吧!” inline=”0″u003Eu003Cu002Fpu003Eu003Cp class=”list_Paragraph”u003E非常简单的网页,这里我们可以很容易获取游戏的url和相关信息u003Cu002Fpu003Eu003Cp class=”list_Paragraph”u003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002F66c70002f56769f54807″ img_width=”815″ img_height=”255″ alt=”python编程学习之面向函数初接触!这次我们来抓取QQgame信息吧!” inline=”0″u003Eu003Cu002Fpu003Eu003Cp class=”list_Paragraph”u003E我们提取中间的游戏名字,简介,链接就可以了(大型游戏并不在QQgame里面)。Ok,我们开工!u003Cu002Fpu003Eu003Cp class=”list_Paragraph”u003E2、代码实现u003Cu002Fpu003Eu003Cp class=”list_Paragraph”u003E这次我们用到了requests、time、random、json和lxml模块,其中我们的最终结果要保存为json文件,所以这里导入了json模块u003Cu002Fpu003Eu003Cp class=”list_Paragraph”u003Eu003Cimg src=”http:u002Fu002Fp3.pstatp.comu002Flargeu002F66c800021847ad5c7687″ img_width=”283″ img_height=”47″ alt=”python编程学习之面向函数初接触!这次我们来抓取QQgame信息吧!” inline=”0″u003Eu003Cu002Fpu003Eu003Cp class=”list_Paragraph”u003E构造一个函数作为主体函数main(),把url写入进去,新建一个空字典,用于接收相关信息,我们这次采用xpath模块来匹配相应标签内容,简单快捷。u003Cu002Fpu003Eu003Cp class=”list_Paragraph”u003Eu003Cimg src=”http:u002Fu002Fp3.pstatp.comu002Flargeu002F66c70002f560061a486b” img_width=”734″ img_height=”431″ alt=”python编程学习之面向函数初接触!这次我们来抓取QQgame信息吧!” inline=”0″u003Eu003Cu002Fpu003Eu003Cp class=”list_Paragraph”u003E最后5行是做为主程序执行,加入了开始和结束时间,用于统计用时,并显示出来u003Cu002Fpu003Eu003Cp class=”list_Paragraph”u003E这里我们新建了2个函数,一个是get_html函数,用于获取网页源码,UA部分填写自己的就可以。在函数内做一个判断,如果没有访问成功则返回False,用于判断网页是否可访问!后面会多次用到。u003Cu002Fpu003Eu003Cp class=”list_Paragraph”u003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002F66c400038a5e6602da89″ img_width=”718″ img_height=”232″ alt=”python编程学习之面向函数初接触!这次我们来抓取QQgame信息吧!” inline=”0″u003Eu003Cu002Fpu003Eu003Cp class=”list_Paragraph”u003E还有一个就是save函数用于存储数据,它接收main函数传入的分类字典,字典内含有分类名字和url对应的各个元素,将key值取出做循环遍历字典,然后用dic[key]来取出对应的url。因为存在每个分类的翻页,所有在下面做一个while循环,并新建2个函数,1个获取当前页相应内容的函数,1个是获取下一页url的函数,用if判断,如果下一页存在,则继续循环,不存在则跳出循环并显示相应信息。然后将返回的页面信息写入文件!u003Cu002Fpu003Eu003Cp class=”list_Paragraph”u003E注意while循环下先用if函数判断传入的url是否可访问,来决定是否执行获取信息!u003Cu002Fpu003Eu003Cp class=”list_Paragraph”u003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002F66c400038a5f22287dd2″ img_width=”626″ img_height=”438″ alt=”python编程学习之面向函数初接触!这次我们来抓取QQgame信息吧!” inline=”0″u003Eu003Cu002Fpu003Eu003Cp class=”list_Paragraph”u003ENext_url函数获取下一页的url地址并返回!注意源码中下一页的跳转url是简写模式,需要加上前面的主页信息,但又不是’qqgame.qq.com’,这里是个大坑!u003Cu002Fpu003Eu003Cp class=”list_Paragraph”u003Eu003Cimg src=”http:u002Fu002Fp3.pstatp.comu002Flargeu002F66c50003678993ba6cc1″ img_width=”654″ img_height=”238″ alt=”python编程学习之面向函数初接触!这次我们来抓取QQgame信息吧!” inline=”0″u003Eu003Cu002Fpu003Eu003Cp class=”list_Paragraph”u003EGet_game函数获取当前页面所有的相关信息,并保存到字典返回!u003Cu002Fpu003Eu003Cp class=”list_Paragraph”u003E为了结果的美观,这里我们新建了3个字典,返回数据为{序号:{游戏名称:{游戏简介,游戏页面地址}}}的模式!u003Cu002Fpu003Eu003Cp class=”list_Paragraph”u003Eu003Cimg src=”http:u002Fu002Fp3.pstatp.comu002Flargeu002F66c900011d79603978b4″ img_width=”870″ img_height=”440″ alt=”python编程学习之面向函数初接触!这次我们来抓取QQgame信息吧!” inline=”0″u003Eu003Cu002Fpu003Eu003Cp class=”list_Paragraph”u003E到这里,整个代码就写完了,我们运行并验证下吧!u003Cu002Fpu003Eu003Cp class=”list_Paragraph”u003E3、运行结果!u003Cu002Fpu003Eu003Cp class=”list_Paragraph”u003E开始运行u003Cu002Fpu003Eu003Cp class=”list_Paragraph”u003Eu003Cimg src=”http:u002Fu002Fp3.pstatp.comu002Flargeu002F66c400038a623dda4de8″ img_width=”457″ img_height=”319″ alt=”python编程学习之面向函数初接触!这次我们来抓取QQgame信息吧!” inline=”0″u003Eu003Cu002Fpu003Eu003Cp class=”list_Paragraph”u003E运行完毕,因为没有多少内容,所以速度还是很快的,30多秒完成!u003Cu002Fpu003Eu003Cp class=”list_Paragraph”u003Eu003Cimg src=”http:u002Fu002Fp3.pstatp.comu002Flargeu002F66c6000352d1a069cf93″ img_width=”476″ img_height=”235″ alt=”python编程学习之面向函数初接触!这次我们来抓取QQgame信息吧!” inline=”0″u003Eu003Cu002Fpu003Eu003Cp class=”list_Paragraph”u003E保存的文件u003Cu002Fpu003Eu003Cp class=”list_Paragraph”u003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002F66c70002f56261d93631″ img_width=”578″ img_height=”140″ alt=”python编程学习之面向函数初接触!这次我们来抓取QQgame信息吧!” inline=”0″u003Eu003Cu002Fpu003Eu003Cp class=”list_Paragraph”u003E记事本打开一个看看u003Cu002Fpu003Eu003Cp class=”list_Paragraph”u003Eu003Cimg src=”http:u002Fu002Fp9.pstatp.comu002Flargeu002F66c900011d7b883fb3d2″ img_width=”699″ img_height=”412″ alt=”python编程学习之面向函数初接触!这次我们来抓取QQgame信息吧!” inline=”0″u003Eu003Cu002Fpu003Eu003Cp class=”list_Paragraph”u003E乱码?不要着急,我们找个在线解析json的网页,看看内容是什么!将内容复制到网页的json数据中u003Cu002Fpu003Eu003Cp class=”list_Paragraph”u003Eu003Cimg src=”http:u002Fu002Fp9.pstatp.comu002Flargeu002F66c80002184ba32de44f” img_width=”978″ img_height=”497″ alt=”python编程学习之面向函数初接触!这次我们来抓取QQgame信息吧!” inline=”0″u003Eu003Cu002Fpu003Eu003Cp class=”list_Paragraph”u003E点击视图u003Cu002Fpu003Eu003Cp class=”list_Paragraph”u003Eu003Cimg src=”http:u002Fu002Fp9.pstatp.comu002Flargeu002F66c70002f564afe13ba1″ img_width=”504″ img_height=”440″ alt=”python编程学习之面向函数初接触!这次我们来抓取QQgame信息吧!” inline=”0″u003Eu003Cu002Fpu003Eu003Cp class=”list_Paragraph”u003E吼吼~!数据出来了有没有!我们去网页中找找看是否正确!u003Cu002Fpu003Eu003Cp class=”list_Paragraph”u003Eu003Cimg src=”http:u002Fu002Fp3.pstatp.comu002Flargeu002F66c900011d7ec88dd6b8″ img_width=”1282″ img_height=”747″ alt=”python编程学习之面向函数初接触!这次我们来抓取QQgame信息吧!” inline=”0″u003Eu003Cu002Fpu003Eu003Cp class=”list_Paragraph”u003E数据一致~!写完手工!u003Cu002Fpu003Eu003Cp class=”list_Paragraph”u003E看在写这么多的份上,点个赞呗!u003Cu002Fpu003Eu003Cp class=”list_Paragraph”u003E想要源码或者和我一起学习的小伙伴,可以关注我,然后私信沟通哦!u003Cu002Fpu003Eu003Cu002Fdivu003E”

原文始发于:python编程学习之面向函数初接触!这次我们来抓取QQgame信息吧!

主题测试文章,只做测试使用。发布者:战鹰,转转请注明出处:http://www.cxybcw.com/13350.html

联系我们

13687733322

在线咨询:点击这里给我发消息

邮件:1877088071@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code