作者localhostphp (A动动)
看板Python
标题Re: [问题]爬虫问题
时间Sat Aug 24 16:27:05 2013
※ 引述《Thisisnotptt (这不是PTT)》之铭言:
: 小弟最近想练习python的抓站功能,目的是每天定时抓取记忆体颗粒网站的价格
: 但是小弟功力尚浅,怎麽捞都只捞到 "loading...." 捞不到载入过後的表格内文
: 小弟尝试加入等待时间,但是不是很有效,以下是程式码,请问该如何抓取载入
: 後的内文呢?
: 网站: DRAMeXchange
: 网址: http://www.dramexchange.com/#memory
: 小弟抓到的状况都是如图右,在入中的程式码,加入延迟後还是得不到图左的内文
: 图片: http://www.imgur.com/a7zmgyM.jpg
: <tr>
: <td align="center" colspan"12">
: <img scr ="Common/Images/ajax_loading.gif"/>
: <br/>
: loading.....
: <font color="#FFFFFF">DDR3 2G 256Mx8 1333MHz, DDR3 2Gb 256Mx8 eTT,<br/>
: DDR3 1Gb 128Mx8 eTT, DDR3 1Gb 128Mx8 1333Mhz<br/>
: .
: .
: .
: .
: .
: 请问该怎麽抓到该处Loading後的DATA呢?
: 谢谢!
小弟不才,试着回答一下问题
他网页是先写好一个如你的图右边的架构,中间的价格等元素,则是当网页loading的时候,用javascript执行一些程式码,然後得到JSON的资料,最後取代loading的label
所以会抓到loading的字样,下面是他网页原始码的一部份
function NationalFlashSpotPrice()
....略....
$.getJSON(NationalFlashSpotPriceURL+ 'Common/Json/HomePriceOpt.aspx?Source=Flash_Spot&rnd='+ Math.floor(Math.random() * 99999999999),
....略....
不好意思排版排的有点奇怪。
http://www.dramexchange.com/Common/Json/HomePriceOpt.aspx?Source=Dram_Spot&rnd=23
如果把网址打上去最後面rnd随便打个数字,应该能抓到一些JSON的资料
JSON的资料python可以利用import json 来读取(类似dict)
不知道这样有没有解决您的问题??
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.135.228.127
※ 编辑: localhostphp 来自: 220.135.228.127 (08/24 16:33)
1F:→ localhostphp:还有如果要大量抓资料的话,千万不要FOR下去跑,会 08/24 20:22
2F:→ localhostphp:被当成攻击... 08/24 20:22
3F:推 Thisisnotptt:感谢大大,请问不用for的话 有办法可以避免被认认出 08/25 00:53
4F:→ Thisisnotptt:是机器人吗? 08/25 00:53
5F:→ Thisisnotptt:不知道换不同代理可不可以蒙混过去? 08/25 00:54
6F:→ Rhinocero:for回圈里面加sleep ? 08/25 03:12
7F:→ localhostphp:加点延迟下去吧! 08/25 13:46
8F:推 grazioso320:请问一般延迟都加多久呢? 半秒,1秒? 被当成攻击真可怕 08/28 19:57
9F:→ xatier:表现的像"人的行为" 就好 09/01 12:24