国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術(shù)文章
文章詳情頁

python - 怎樣爬取被 下一頁覆蓋/JS渲染 的網(wǎng)頁內(nèi)容?

瀏覽:124日期:2022-07-12 11:35:43

問題描述

我想提取網(wǎng)頁:http://www.igxe.cn/h1z1/43385... 上該物品的當(dāng)前售價(jià)和對應(yīng)商品的ITEM_ID

我使用的是PYTHON2.7配合requests進(jìn)行操作的,代碼如下:

import requestsimport sysheaders = {’User-Agent’: ’Mozilla/5.0 (Linux; U; Android 4.0.3; zh-cn; M032 Build/IML74K) AppleWebKit/533.1 (KHTML, like Gecko)Version/4.0 MQQBrowser/4.1 Mobile Safari/533.1’}r = requests.get(’http://www.igxe.cn/h1z1/433850/product-567592’, headers = headers,stream=True)print r.request.headers[’User-Agent’]print r.textreload(sys)sys.setdefaultencoding(’utf-8’)f = open(’/workspace/test.txt’, ’w’)f.write (r.text)f.close

得到的該代碼文件包含了網(wǎng)頁上絕大部分信息,唯獨(dú)就是沒有我需要的售價(jià)信息以及物品ID,但是該段信息卻可以通過瀏覽器的審查元素獲得,代碼片段如下:python - 怎樣爬取被 下一頁覆蓋/JS渲染 的網(wǎng)頁內(nèi)容?

這段代碼片段通過審查元素可以輕松獲得,但是源代碼上卻沒有,所以十分困惑該如何獲取。在源代碼中找到了如下片段,不知道是不是AJAX有關(guān)的信息獲取的方式:

<script src='http://www.cgvv.com.cn/static/csgo/js/page.js'></script>

<script>

var price_sort = 1;var lock_sort = 1;var status_locked = 0;

var get_params = function (_page_no, _page_size, _status_locked, _price_sort, _lock_sort) { var data = {}; data[’page_no’] = _page_no; data[’page_size’] = _page_size; data[’status_locked’] = _status_locked; data[’price_sort’] = _price_sort; data[’lock_sort’] = _lock_sort; return data;};var load_data = function (params) { if (!AjaxLogin.is_login_box(params.page_no > 1)) {return false; } $.ajax({’type’: 'GET',’url’: '/h1z1/433850/get_list_tmp/568258/' + params.status_locked + '/' + params.page_no + '/' + params.price_sort + '/' + params.lock_sort +'?steamid=',’data’: {},’dataType’: 'json',beforeSend: function () {},success: function (data) { var $t_body = $(’#js-tbody-data’); var $page = $(’#js-page-html’); if (data.succ) {$t_body.html(data.data_html);$page.html(data.page_html); } else {alert(data.message); } Core.ui.loader.hide();},error: function (XmlHttpRequest, textStatus, errorThrown) { Core.ui.loader.hide();} });};var load = function () { var param = get_params(1, 20, status_locked, price_sort, lock_sort); load_data(param);};var change_sort_style = function ($dom, _sort) { if (_sort == 1) {$dom.addClass(’sort__up’);$dom.removeClass(’sort__down’); } else if (_sort == 2) {$dom.addClass(’sort__down’);$dom.removeClass(’sort__up’); } else {$dom.removeClass(’sort__up’);$dom.removeClass(’sort__down’); }};var page_callback = function (page_no) { var param = get_params(page_no, 20, status_locked, price_sort, lock_sort); load_data(param);};

$(function () { var pid = '568258';Core.ui.tab($(’#js-dota-tabs .js-item’), $(’#js-dota-panel .js-item’), ’click’); load(); var tradeBtn = $(’#js-btn-tradeBuy’); var weaponKey = $(’#js-pop-weaponKey’); var $sort_lock = $(’#js-sort-lock’); var $sort_price = $(’#js-sort-price’); var $page = $(’#js-page-html’); $page.on(’click’, ’.js-page’, function () {var page_no = $(this).attr(’page_no’);page_callback(page_no); }); $page.on(’click’, ’.js-page-jump’, function () {var page_no = $(this).prev().val();page_callback(page_no); }); $page.on(’keyup’, ’.js-page-jump-no’, function (e) {$(this).val($(this).val().replace(/[^0-9.]/g, ’’));if (!$(this).val()) { $(this).val(1);} }); $page.on(’keydown’, ’.js-page-jump-no’, function (e) {var curKey = e.which;if (curKey == 13) { page_no = $(’.js-page-jump-no’).val(); page_callback(page_no);} }); $sort_lock.on(’click’, function(){if(lock_sort==1){ lock_sort = 2;} else { lock_sort = 1;}load();change_sort_style($(this), lock_sort);price_sort = 0;change_sort_style($sort_price, price_sort); }); $sort_price.on(’click’, function () {if (price_sort == 1) { price_sort = 2;} else { price_sort = 1;}load();change_sort_style($(this), price_sort);lock_sort = 0;change_sort_style($sort_lock, lock_sort); }); $(’#js-find-locked’).on(’click’, function () {if ($(this).prop(’checked’)) { status_locked = 1;} else { status_locked = 0;}lock_sort = 1;price_sort = 1;change_sort_style($sort_lock, 0);change_sort_style($sort_price, 0);load(); }); $(’#js-buy-count’).on(’keyup’, function () {$(this).val($(this).val().replace(/[^0-9]/g, ’’));var value = $(this).val();if (value > 100) { $(this).val(100);} }); $(’#js-money-start’).on(’keyup’, function () {$(this).val($(this).val().replace(/[^0-9.]/g, ’’));var value = $(this).val();if (value > 99999) { $(this).val(99999);} }); $(’#js-money-end’).on(’keyup’, function () {$(this).val($(this).val().replace(/[^0-9.]/g, ’’));var value = $(this).val();if (value > 99999) { $(this).val(99999);} });

從審查元素上看,我懷疑是 出售列表同一位置的出售歷史 覆蓋了當(dāng)前的信息。從源代碼看,我感覺是有一個(gè)AJAX還是JS渲染的過程。作為一個(gè)小白,實(shí)在不知道該如何解決該問題,還勞請大神們賜教。

問題解答

回答1:

# coding: utf-8import requestsheaders = {’X-Requested-With’:’XMLHttpRequest’}url = ’http://www.igxe.cn/h1z1/433850/get_list_tmp/567592/0/1/1/1?steamid=’r = requests.get(url, headers=headers)print r.text

python - 怎樣爬取被 下一頁覆蓋/JS渲染 的網(wǎng)頁內(nèi)容?

python - 怎樣爬取被 下一頁覆蓋/JS渲染 的網(wǎng)頁內(nèi)容?

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 美女视频网站免费播放视 | 精品国产自在现线看久久 | 一级一级 a爱片免费视频 | 日本综合久久 | 久久久久女人精品毛片 | 亚洲精品国产一区二区三区在 | 国内精品久久影视 | 亚洲第一视频在线播放 | 最新国产美女肝交视频播放 | 99成人国产精品视频 | 不卡国产视频 | 久久综合九色综合欧洲色 | 超薄肉色丝袜精品足j福利 超级乱淫视频aⅴ播放视频 | 97天天干 | 亚洲午夜成激人情在线影院 | 一区二区三区视频在线 | 嫩草影院ncyy在线观看 | 玖玖精品国产 | 亚洲自偷| 久久国产情侣 | 日本一级毛片在线看 | 亚洲性xx | 国产成人一区二区视频在线观看 | 亚洲国产老鸭窝一区二区三区 | 91av小视频| 久色福利 | 久久成人黄色 | 日韩一级片在线免费观看 | 亚洲系列中文字幕一区二区 | 免费人成观看在线网 | 久久精品亚洲综合一品 | hd最新国产人妖ts视频 | 日韩亚洲欧美一区噜噜噜 | 欧美成人aaa大片 | 国产精品亚洲片夜色在线 | 久久香蕉国产线看免费 | 香蕉久久综合精品首页 | 自拍视频第一页 | 久久久久网站 | 欧美精品免费在线 | 国产香蕉成人综合精品视频 |