数据抓取问题,有个价格不好搞定,请求支援
目标网页 http://www.mymall.com.tw/pro-23381.html?member=5880412
要获取这个页面上的 網路價 $449,
我分析了,是另外单独Post数据去获取,post data在页面的js代码中,但是这个post data居然是变化的,每次刷新页面都不一样,而且没有传商品的ID, 不知道怎么获取的
(主要动作在html代码中的js //得到最新的商品价格部分)
请帮帮忙,我是用c# httpwebrequest 获取的,
实现方法语言不限,大致意思应该都类似的,或者给点思路也好,先谢谢了
神偷魔理沙
10 years, 4 months ago
Answers
读取
/pro-[product_id].html
的页面,使用正则提取
var content =
中
content
的值:
addon\(window , 'load' , function\(\)\s+\{\s+var content = '([a-zA-Z0-9_/]+)'
然后 POST 到
/goods-money.php
:
import urllib
import urllib2
import re
def get_price(product_id):
url = 'http://www.mymall.com.tw/pro-%s.html' % product_id
response = urllib2.urlopen(url)
html = response.read()
m = re.search(r"addon\(window , 'load' , function\(\)\s+\{\s+"
r"var content = '([a-zA-Z0-9_/]+)'", html)
param_content = m.groups(0)[0]
data = {"content": param_content}
req = urllib2.Request('http://www.mymall.com.tw/goods-money.php')
data = urllib.urlencode(data)
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor())
response = opener.open(req, data)
return response.read()
if __name__ == "__main__":
print get_price('23381')
weichen
answered 10 years, 4 months ago