爬虫获取html问题
刚接触爬虫,用requests.get() 方法获取网站html,用了简单的headers,就是一个User-Agent程序没有报错,但是返回的html信息跟网页上看到的是不一样的,我也不知道返回的是什么页面
我输入的是什么值得买的一个搜索商品页面,在电脑上访问这个页面也没有提示需要登陆,返回的html比较简短,并不是商品页面,如下;请告诉我一下这个页面代表什么呢?
<script>
var search_domain = 'https://search.smzdm.com/';
var www_domain = 'https://www.smzdm.com/';
var search_url = '';
var keyword = GetQueryString('s');
var channel = GetQueryString('c');
var direct_url = GetQueryString('url');
var order = GetQueryString('order');
var p = GetQueryString('p');
var cate_id = GetQueryString('cate_id');
var mall_id = GetQueryString('mall_id');
var brand_id = GetQueryString('brand_id');
var min_price = GetQueryString('min_price');
var max_price = GetQueryString('max_price');
var channel_map = ['home','youhui','haitao','faxian','news','zhongce','zhiyou','coupon','second_hand','post'];
if ('' == keyword&& '' == direct_url) {
window.location.href = www_domain;
}
if ('' == channel) {
channel = 'home';
}
if (channel_map.indexOf(channel) == -1) {
channel = 'home';
}
search_url += search_domain+'?c='+channel;
if (direct_url) {
search_url += "&url="+direct_url;
} else {
search_url += "&s="+keyword;
}
if (order) {
search_url += "&order=" + order;
}
if (mall_id) {
search_url += "&mall_id=" + mall_id;
}
if (cate_id) {
search_url += "&cate_id=" + cate_id;
}
if (brand_id) {
search_url += "&brand_id=" + brand_id;
}
if (min_price) {
search_url += "&min_price=" + min_price;
}
if (max_price) {
search_url += "&max_price=" + max_price;
}
var search_ab = GetQueryString('ss_ab');
// 分流
var r_w_map = new Array();
for (var i=1;i<=100;i++) {
// 80% 到a %20 到b.
if (i <= 50) {
r_w_map["ss"+i] = 'a';
}else{
r_w_map["ss"+i] = 'b';
}
}
if (typeof(r_w_map) !== "undefined") {
setCookie('ss_ab',search_ab, 3600 * 24 * 7, '/','.smzdm.com');
search_url += "&v="+ r_w_map;
}
window.location.href = encodeURI(search_url);
/**
* 写cookie .
*
* @param cookieName
* @param cookieValue
* @param seconds
* @param path
* @param domain
* @param secure
*/
function setCookie(cookieName, cookieValue, seconds, path, domain, secure) {
seconds = seconds ? seconds : 604800;
seconds= seconds * 1000;
var expires = new Date();
expires.setTime(expires.getTime() + seconds);
document.cookie = escape(cookieName) + '=' + escape(cookieValue)
+ (expires ? '; expires=' + expires.toGMTString() : '')
+ (path ? '; path=' + path : '/')
+ (domain ? '; domain=' + domain : '')
+ (secure ? '; secure' : '');
return ;
}
/**
* 获取url 参数值.
*
* @param name
* @returns {*}
* @constructor
*/
function GetQueryString(name)
{
var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
var r = window.location.search.substr(1).match(reg);
//console.log(r);
if(r!=null)returndecodeURI(r); return '';
}
</script> 本帖最后由 admintest166 于 2020-3-26 00:56 编辑
这个很明显就是JS代码 <script>就是html中写JS的标签
如果说你输入的URL在浏览器中正常显示 但是用requests请求的时候却跟网页的源代码不一样 初步判断应该是user-agent反爬或者 cookies反爬
特点就是你浏览器上正常显示 因为你的浏览器把该传的参数都传给服务器了 所以看得页面就是啥都有你可以用requests请求一下看看他的code是什么 如果是304那么就是有反爬的
本帖最后由 wp231957 于 2020-3-26 11:23 编辑
请移步至传送门 admintest166 发表于 2020-3-26 00:52
这个很明显就是JS代码 就是html中写JS的标签
如果说你输入的URL在浏览器中正常显示 但是用requests请 ...
code是200呢 wp231957 发表于 2020-3-26 11:19
请移步至传送门
你的代码我现在程度还很多不懂。。能不能简单告诉我一下现在张大妈网页是什么反爬计数呢?或者说用最简单的requests get方法是卡在哪里了,我后面再慢慢学习 picesss 发表于 2020-3-26 18:56
你的代码我现在程度还很多不懂。。能不能简单告诉我一下现在张大妈网页是什么反爬计数呢?或者说用最简单 ...
我用python重写了一下:我只爬取了5页数据:
import requests
from bs4 import BeautifulSoup as bs
#伪造浏览器
headers={
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36 Edg/80.0.361.69',
"Cookie": "__ckguid=9A9avSOoqQL2LBooASiHn4; device_id=2130706433158518791067339400e72d5b2d9ec2956ba4344c1ce1392c; homepage_sug=c; r_sort_type=score; _zdmA.uid=ZDMA.2BVuZhWXu.1585187927.2419200; zdm_qd=%7B%7D; _ga=GA1.2.1706142249.1585187930; _gid=GA1.2.65423823.1585187935; __gads=ID=9c536de806baefdf:T=1585187919:S=ALNI_MbveT-Tl4OLlj4ko3UrYnE1FDh-3A; __jsluid_s=b1f3c20ddf812789796a2ccc12cfaa80"
}
arr=[]
for page in range(1,6):
url="https://faxian.smzdm.com/p"+str(page);
res=requests.get(url,headers=headers).text
soup=bs(res,"html.parser")
#print(soup)
text=soup.find('ul',class_='feed-list-col z-clearfix').select("li>div>h5>a")
price=soup.find('ul',class_='feed-list-col z-clearfix').select("li>div")
for x in range(len(text)):
tmp={}
tmp["text"]=text.get_text()
tmp["price"]=price.find_all("div").get_text()
arr.append(tmp)
for x in arr:
print(x)
'''
PS E:\wp> py test2.py
{'text': 'Elta MD 三重防晒 SPF45 85克*3支', 'price': '305.28元'}
{'text': '大号波浪形记忆枕', 'price': '24.9元'}
{'text': '梵想(FANXIANG)512GB USB3.1 固态U盘 F306至尊超极速', 'price': '599元'}
{'text': '洗碗布 10条装', 'price': '13.9元'}
{'text': '青岛啤酒福如东海500ml*12听 1箱装 *2件', 'price': '104元(合52元/件)'}
{'text': 'gb 好孩子 拥抱系列 婴儿宽口径玻璃奶瓶 120ml *3件', 'price': '144.9元(合48.3元/件)'}
{'text': 'NIVEA 妮维雅 强韧健发洗发露 400ml *2件', 'price': '67元(合33.5元/件)'}
{'text': '古井贡酒 年份原浆中国香古20 52度 500ml', 'price': '649元(需用券)'}
{'text': '智利原瓶进口红酒 蒙特斯montes经典系列 梅洛红葡萄酒750ml单支装 *2件', 'price': '132.8元(合66.4元/件)'}
{'text': 'Marmot/土拨鼠春夏男士速干裤户外耐磨可拆卸长裤', 'price': '549元包邮'}
{'text': 'Gap 盖璞 366113 W E 加绒加厚卫衣', 'price': '124.92元'}
{'text': 'adidas 阿迪达斯 男女跑步鞋 F33885', 'price': '219元'}
{'text': 'ElizabethArden 伊丽莎白雅顿 绿茶蜜滴舒体霜 500ml*2瓶 *2件', 'price': '334.54元(合167.27元/件
)'}
{'text': '印尼进口 Tango威化饼干 乳酪夹心威化饼干160g *14件', 'price': '110.88元(合7.92元/件)'}
{'text': '番茄派 山羊奶护手霜80g*2(滋润 补水 保湿 防干裂) *12件', 'price': '102.8元(合8.57元/件)'}
{'text': '清风(APP) 抽纸 原木Junior就你四叶草 3层100抽*24包软抽面巾纸巾小规(整箱销售) *3件', 'price': '126.46元(合42.15元/件)'}
{'text': '大宇火锅蘸料组合10袋装', 'price': '18.5元(需用券)'}
{'text': 'SWAROVSKI 施华洛世奇 SPARKLING DC闪闪发光的七星瓢虫项链 5521787', 'price': '517.44元'}
{'text': 'babypet 白肉猫罐头主食零食罐100g*6增肥营养幼猫金枪鱼肉汤湿粮', 'price': '19.9元'}
{'text': '霸王电热蚊香液10瓶送2加热器家用插电式驱蚊水无味型卧室驱蚊液', 'price': '14.9元'}
{'text': '梦洁美颂蚕丝被提花四季被子双人被芯 丝柔大提花纯蚕丝 厚被 1.8米大床(248*248)cm *3件', 'price': '2517.9元(合839.3元/件)'}
{'text': '好麦滋 鸡蛋面 挂面 汤面 拌面 方便速食面 1kg *12件', 'price': '102.8元(合8.57元/件)'}
{'text': 'OMEGA/欧米茄 Constellation 星座系列 123.15.35.20.02.001女表', 'price': '$4595(约32669.07元)
'}
{'text': 'VANS 范斯 Vans Sports 中性款运动鞋', 'price': '369元包邮'}
{'text': 'HP 惠普 v222w USB2.0 U盘 32GB', 'price': '39.9元'}
{'text': 'Angel 安吉尔 K7 反渗透净水器', 'price': '2998元'}
{'text': '27日0点:brother 兄弟 HL-2260D 黑白激光打印机', 'price': '948元'}
{'text': '赶海弟 巴旦木 夹心海苔脆 儿童零食 坚果片海味小吃特产原味 46g/袋 *12件', 'price': '102.8元(合
8.57元/件)'}
{'text': 'NEIWAI内外棉质连体短裤睡衣女夏纯色简约家居服舒适轻便可外穿 *2件', 'price': '428元(合214元/件
)'}
{'text': '黄飞红 麻辣休闲零食花生辣椒圈呼辣圈儿芝士味105g *6件', 'price': '51.4元(合8.57元/件)'}
{'text': 'MISSHA谜尚大红管BB霜魅力润颜修容SPF42/PA 50ml 21号23号 *2件', 'price': '91元(合45.5元/件)
'}
{'text': 'Mizuno 美津浓 跑步鞋', 'price': '629元'}
{'text': '绿奥(LVAO)GY-662 插座转换器转换插头无线多孔位插排保护门一转二总控开关 *3件', 'price': '31.68元(合10.56元/件)'}
{'text': 'Coach 蔻驰 F64825 黑灰色PVC男士腰带', 'price': '389元'}
{'text': 'QINYUAN 沁园 LNS583-6F 商用下置式速热饮水器 *2件', 'price': '2398元(合1199元/件)'}
{'text': 'KEGOO 科固 K07005 家用虹吸式节水马桶', 'price': '499元(需用券)'}
{'text': 'adidas 阿迪达斯 Climacool BB6550 男款跑鞋', 'price': '259元'}
{'text': '农远大叔 泰国芒果干 水果干 蜜饯果脯果 500g', 'price': '23.8元(需用券)'}
{'text': 'KEGOO 科固 K10020 不锈钢厨房水槽龙头套装', 'price': '699元'}
{'text': '木丽 平口垃圾袋 5卷 100只', 'price': '2.9元(需用券)'}
{'text': 'Angel 安吉尔 K7 反渗透净水器', 'price': '2998元'}
{'text': '27日0点:brother 兄弟 HL-2260D 黑白激光打印机', 'price': '948元'}
{'text': '赶海弟 巴旦木 夹心海苔脆 儿童零食 坚果片海味小吃特产原味 46g/袋 *12件', 'price': '102.8元(合
8.57元/件)'}
{'text': 'NEIWAI内外棉质连体短裤睡衣女夏纯色简约家居服舒适轻便可外穿 *2件', 'price': '428元(合214元/件
)'}
{'text': '黄飞红 麻辣休闲零食花生辣椒圈呼辣圈儿芝士味105g *6件', 'price': '51.4元(合8.57元/件)'}
{'text': 'MISSHA谜尚大红管BB霜魅力润颜修容SPF42/PA 50ml 21号23号 *2件', 'price': '91元(合45.5元/件)
'}
{'text': 'Mizuno 美津浓 跑步鞋', 'price': '629元'}
{'text': '绿奥(LVAO)GY-662 插座转换器转换插头无线多孔位插排保护门一转二总控开关 *3件', 'price': '31.68元(合10.56元/件)'}
{'text': 'Coach 蔻驰 F64825 黑灰色PVC男士腰带', 'price': '389元'}
{'text': 'QINYUAN 沁园 LNS583-6F 商用下置式速热饮水器 *2件', 'price': '2398元(合1199元/件)'}
{'text': 'KEGOO 科固 K07005 家用虹吸式节水马桶', 'price': '499元(需用券)'}
{'text': 'adidas 阿迪达斯 Climacool BB6550 男款跑鞋', 'price': '259元'}
{'text': '农远大叔 泰国芒果干 水果干 蜜饯果脯果 500g', 'price': '23.8元(需用券)'}
{'text': 'KEGOO 科固 K10020 不锈钢厨房水槽龙头套装', 'price': '699元'}
{'text': '木丽 平口垃圾袋 5卷 100只', 'price': '2.9元(需用券)'}
{'text': 'OSRAM 欧司朗 激光夜行者 H1 汽车大灯 12V 55W 2支装', 'price': '95元(需用券)'}
{'text': '罗曼湖(LOCH LOMOND)进口洋酒 英国苏格兰 单一麦芽威士忌 12年 46度700ml *2件', 'price': '636.8元(合318.4元/件)'}
{'text': 'Hazzys 哈吉斯 ASCSK19AK15 新款女士条纹长袖衬衫', 'price': '662.25元'}
{'text': "AGE20's 爱敬 黑色星空精华气垫粉饼(正装14g+替换芯14g)", 'price': '148元'}
{'text': '赶海弟 夹心海苔脆 南瓜子 坚果片 儿童零食 非油炸烤紫菜原味46g/袋 *12件', 'price': '102.8元(合
8.57元/件)'}
{'text': 'adidas 阿迪达斯 CQ0928 男女经典鞋', 'price': '235.17元'}
{'text': '车仆玻璃水0度2L 6瓶车用玻璃水雨刷精挡风玻璃清洁剂去油膜去污剂四季通用 汽车用品 *6件', 'price': '254元(需用券,合42.33元/件)'}
{'text': '獭祭 清酒 纯米大吟酿50 1.8L', 'price': '520元'}
{'text': '香山 厨房电子秤 5g-5kg *9件', 'price': '284.1元(合31.57元/件)'}
{'text': '新贝广口径硅胶奶瓶 一体硅胶瓶身 150ml XB-8927 *3件', 'price': '58.2元(合19.4元/件)'}
{'text': '康师傅 冰红茶柠檬味500ml*15瓶 箱装 茶饮料', 'price': '19.45元'}
{'text': '奥克斯/AUX 立式茶吧机 YCB-W 家用养生茶吧 高贵玉石白色 温热型饮水机下置式 自动上水 柜式 童锁', 'price': '348元'}
{'text': '海天 老抽王酱油 1.28L *3件', 'price': '43元(合14.33元/件)'}
{'text': '今麦郎 方便面 大今野葱香排骨面 泡面五连包', 'price': '7.5元'}
{'text': 'Nintendo Switch官方授权闪迪TF内存128g卡switch游戏机内存储卡通用microsd存储卡游戏存储卡马力欧', 'price': '219元'}
{'text': '海信75E3D 75英寸4K超高清智能wifi大屏网络平板液晶电视机 80 70', 'price': '4199元包邮(需用券)
'}
{'text': 'HONOR 荣耀 V30 PRO 5G 智能手机 8GB 256GB', 'price': '3799元'}
{'text': 'GUCCI 古驰 Guilty 罪爱 女士淡香水 EDT 50ml', 'price': '295.68元'}
{'text': '京东PLUS会员:美狄丝干红葡萄酒 小提琴红酒礼盒装750ml*2', 'price': '99元'}
{'text': '卓好姿 大框防水防雾游泳镜', 'price': '9.9元(需用券)'}
{'text': 'SKWLOCH 斯沃奇 HW1004 智能恒温花洒套装', 'price': '419元'}
{'text': '力魔能量型全合成机油 0W-40 A3/B4级 1L 汽车用品 *2件', 'price': '236元(需用券,合118元/件)'}
{'text': '松下电动牙刷成人充电式声波震动自动软毛防水家用便携牙刷DM711', 'price': '299元'}
{'text': '银联专享:OMEGA 欧米茄 海马系列 Aqua Terra 220.12.41.21.03.002 男士机械腕表', 'price': '$3595(约25330元,最高享453元现金奖励)'}
{'text': 'NEC NP-CD1010H 投影仪 1080P', 'price': '3349元'}
{'text': 'Nintendo 任天堂 Switch 国行续航加强版 红蓝主机+HORI轻薄硬壳保护包', 'price': '2099元'}
{'text': 'Silverage 银时代 S925银樱花项链 *2件', 'price': '320.4元(合160.2元/件)'}
{'text': 'REVLON 露华浓 丽彩炫亮 黑管口红 4.2g', 'price': '24.4元'}
{'text': 'Lenovo 联想 小新Pro13s 13.3英寸笔记本电脑(i5-10210U、16G、512G、100%sRGB) 冰瓷莹玉', 'price': '5999元'}
{'text': 'Tonlion 唐狮 623320026412 女款连帽卫衣', 'price': '71.1元'}
{'text': '《我们的太空》3d立体书', 'price': '54.7元'}
{'text': '27日0点、促销活动:苏宁易购 SKECHERS斯凯奇 品牌日 ', 'price': '爆款满198减100'}
{'text': '芬腾 真丝睡衣女春夏长袖纯色时尚两件套家居服套装女J8910591 黑色 L', 'price': '723.65元'}
{'text': '促销活动:考拉海购 FILA短袖 专场', 'price': '3件8折'}
{'text': 'COACH 蔻驰 女士字母印花长款卡夹 卡包 钱包', 'price': '227元'}
{'text': '奥吉龙玻璃水防冻玻璃清洗剂 浓缩雨刮精雨刷精去油膜', 'price': '4.12元'}
{'text': '海天 腐乳 经典白方 辣味 288g *9件', 'price': '52.1元(合5.79元/件)'}
{'text': '来伊份 鱼蛋蛋小鱼即食鱼丸食品 爆浆鱼籽蛋(原味)108g *12件', 'price': '92.66元(合7.72元/件)
'}
{'text': 'SK-II神仙水230ml 大红瓶50g护肤套装化妆品礼盒(赠氨基酸洗面奶 清莹露 眼霜)SK2精华液 面霜 补水
保湿', 'price': '2400元'}
{'text': '优兔 厨房去污清洁刷 3个', 'price': '6.8元(需用券)'}
{'text': 'TCL 55T3S 55英寸 4K超薄液晶电视', 'price': '2799元'}
{'text': '劳力士 Lady-Datejust 28 Liliac Dial 18K金', 'price': '$24895(约176995.98元)'}
{'text': 'PLAYBOY 花花公子 男士头层牛革多功能短款钱夹 *2件', 'price': '98元(合49元/件)'}
{'text': "L'OCCITANE 欧舒丹 玫瑰皇后润肤露 250ml *2件", 'price': '250.06元(合125.03元/件)'}
{'text': '陈克明面条 多维营养小面 儿童挂面 添加维生素麦香原味营养儿童面280g *22件', 'price': '155.8元(
合7.08元/件)'}
PS E:\wp>
'''
页:
[1]