日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

python - 怎樣爬取被 下一頁覆蓋/JS渲染 的網頁內容?

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

問題描述

我想提取網頁:http://www.igxe.cn/h1z1/43385... 上該物品的當前售價和對應商品的ITEM_ID

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

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

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

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

<script src='http://m.b3g6.com/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);} });

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

問題解答

回答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渲染 的網頁內容?

python - 怎樣爬取被 下一頁覆蓋/JS渲染 的網頁內容?

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲高清av| 亚洲欧洲免费| 久久精品国产99久久| 精品中文一区| 日韩在线观看一区二区| 青青国产精品| 国产 日韩 欧美 综合 一区| 亚洲天堂成人| 日韩国产成人精品| 国产精品国产一区| 一区二区视频欧美| 欧美一级全黄| 亚洲国产欧美日本视频| 亚洲精品小说| 日韩av电影一区| 国产伦乱精品| 精品亚洲美女网站| 日本欧美在线看| 你懂的国产精品永久在线| 日韩精品一区二区三区免费观影| 午夜在线视频观看日韩17c| 国产亚洲精品美女久久| 不卡专区在线| 日本欧洲一区二区| 国产一区二区三区黄网站| 91成人精品| 国产日韩在线观看视频| 久久久五月天| 日本午夜精品一区二区三区电影| www在线观看黄色| 性欧美69xoxoxoxo| 国产精品一页| 狠狠久久婷婷| 久久免费影院| 奶水喷射视频一区| 国产成人精选| 中文字幕av一区二区三区人| 欧美国产偷国产精品三区| 亚洲精品一级二级三级| 久久影院午夜精品| 香蕉久久一区| 91精品国产调教在线观看| 欧美亚洲二区| 99在线|亚洲一区二区| 精品久久99| 免费看黄色91| 99久久久国产精品美女| 精品一区视频| 日本麻豆一区二区三区视频| 欧美日韩国产高清| 成人一区而且| 97精品国产99久久久久久免费| 亚洲不卡av不卡一区二区| 国产精品久久久久久妇女 | bbw在线视频| 日韩精品免费视频一区二区三区 | 日韩中文一区二区| 亚洲五月婷婷| 国产精品99久久精品| 91在线成人| 石原莉奈在线亚洲三区| 日本综合字幕| 欧美激情综合| 日韩精品亚洲一区二区三区免费| 日韩av一级| 久久亚洲国产精品尤物| 久久精品97| 丝袜脚交一区二区| 久久精品二区三区| 国产精品99精品一区二区三区∴ | 欧美一级网站| 亚洲天堂免费| 免费视频一区三区| 97人人精品| 国产精品久久久久久久久久齐齐 | 免费观看在线综合色| 日韩精品欧美| 国产精品久久久久9999高清| 日韩精品五月天| 中文在线一区| 亚洲成人日韩| 激情婷婷久久| 亚洲福利免费| 欧美一区二区三区高清视频| 9999国产精品| 国产成人精品一区二区三区视频| 久久不卡日韩美女| 欧美日本久久| 欧美一区成人| 日本午夜精品| 欧美一区自拍| 日韩av在线免费观看不卡| 日韩亚洲在线| 免费视频亚洲| 91久久久精品国产| 国内亚洲精品| 欧美成人高清| 亚洲国产一区二区三区在线播放| 日韩欧美二区| 91精品xxx在线观看| 波多野结衣久久精品| 92国产精品| 久久国产电影| 香蕉国产精品| 亚洲免费观看| 国产一区91| 视频在线在亚洲| 免费日韩精品中文字幕视频在线| 宅男噜噜噜66国产日韩在线观看| 99国产精品| 亚洲免费中文| 亚洲精品三级| 国产精品综合色区在线观看| 免费视频一区二区三区在线观看| 麻豆精品蜜桃视频网站| 成人台湾亚洲精品一区二区| 国产一区二区三区日韩精品| 日韩免费高清| 亚洲免费激情| 日韩成人av影视| 久久中文在线| 久久久天天操| 蜜臀久久99精品久久一区二区 | 午夜在线精品偷拍| 日本不卡一二三区黄网| 国产精品激情| 日本欧美不卡| 国产精品嫩草99av在线| 视频一区中文字幕精品 | 日韩国产在线观看| 国产精品3区| а√天堂8资源在线| 美女亚洲一区| 中文字幕一区二区三区在线视频| 日韩av一级片| 捆绑调教日本一区二区三区| 9国产精品视频| 国产精品一区二区精品| 樱桃视频成人在线观看| 老司机久久99久久精品播放免费| 日本成人在线一区| 国产精品国产三级国产在线观看| 亚洲国产日韩欧美在线| 欧美日韩伊人| 电影天堂国产精品| 视频一区日韩精品| 高清一区二区| 国产一级一区二区| 国产精品一区二区99| 激情六月综合| 国产亚洲一卡2卡3卡4卡新区| 日本美女一区| 亚洲日本国产| 中文字幕在线免费观看视频| 亚洲一区二区三区中文字幕在线观看| 欧美黑人做爰爽爽爽| 亚洲欧美一区在线| 国产麻豆精品| aa亚洲婷婷| 精品日本视频| 在线观看亚洲精品福利片| 91亚洲国产高清| 一区二区精品| 岛国av在线播放| 最新国产精品视频| 欧洲精品一区二区三区| 久久国内精品| 99在线|亚洲一区二区| 国产66精品| 日韩精品一区二区三区av| 99tv成人| 麻豆国产欧美日韩综合精品二区| 国产亚洲精品久久久久婷婷瑜伽| 精品国产欧美日韩一区二区三区| 日韩中文字幕91| 视频二区不卡| 日韩国产在线观看一区| 欧美日韩国产免费观看视频| 国产欧美自拍| 男女精品网站| 色老板在线视频一区二区| 国产欧美啪啪| 视频一区中文字幕| 天堂中文在线播放| 日本欧美一区二区| 99精品99| 韩国精品主播一区二区在线观看| 国产精品亚洲四区在线观看| 丝袜诱惑制服诱惑色一区在线观看 | 成人在线观看免费视频| 日韩1区2区日韩1区2区| 午夜精品免费| jizzjizz中国精品麻豆| 国产精品毛片久久久| 免费视频一区二区| 欧美成人日韩| 日韩精品不卡一区二区| 美女精品久久| 久久国产精品免费一区二区三区 | 日韩av影院|