简单爬虫问题
我进入到一个网站页面,在抓包工具我发现请求这个url的数据包的response有我需要的源代码,可是我通过请求这个url,打印出的响应数据发现,它没有网页上显示的数据,这是什么情况,葵丘求大佬解答!!! ajax suchocolate 发表于 2021-2-23 18:52ajax
怎么分析呀 suchocolate 发表于 2021-2-23 18:52
ajax
我捕获的阿贾克斯数据包也没得我要的数据呀,大佬 caly_fast 发表于 2021-2-23 18:58
我捕获的阿贾克斯数据包也没得我要的数据呀,大佬
还是发网址才是 wp231957 发表于 2021-2-23 19:17
还是发网址才是
http://glidedsky.com/level/web/crawler-basic-1,这个网址要注册一下就可以访问了 wp231957 发表于 2021-2-23 19:17
还是发网址才是
已经发网站了,正在审核{:5_99:} 本帖最后由 YunGuo 于 2021-2-23 20:13 编辑
网站注册看了,cookie反爬。
分析很简单,首先,请求网页后浏览器源代码中有数据,但是网站是要登录才能进去的(浏览器没登录前打不开这个网站),根据这个推测要携带cookie请求,才能正常得到数据。所以你携带cookie就行了,然后正常提取数据去求和。
import requests
from lxml import etree
url = 'http://glidedsky.com/level/web/crawler-basic-1'
headers = {
'user-agent': 'Mozilla/5.0',
'cookie': '' #复制浏览器cookie
}
res = requests.get(url, headers=headers)
sel = etree.HTML(res.text)
nums = sel.xpath('//*[@class="col-md-1"]/text()')
num_sum = 0
for num in nums:
num_sum += int(num.replace('\n', '').strip())
print(num_sum) YunGuo 发表于 2021-2-23 20:10
网站注册看了,cookie反爬。
分析很简单,首先,请求网页后浏览器源代码中有数据,但是网站是要登录才能进 ...
问题解决了谢谢大佬,为啥不能把cookie放到params参数里呢? caly_fast 发表于 2021-2-23 20:27
问题解决了谢谢大佬,为啥不能把cookie放到params参数里呢?
params是网站服务器需要传递的查询参数,而cookie不属于查询参数。
另外这里为了方便,我把cookie放到headers里面,cookie也可以在get请求时添加cookies参数,但是这个必须要是键值对形式(字典),拿到浏览器cookie还要处理成字典,不是很方便。
get请求添加cookie:
cookies = {
'键': '值',
}
res = requests.get(url, headers=headers, cookies=cookies) YunGuo 发表于 2021-2-23 22:31
params是网站服务器需要传递的查询参数,而cookie不属于查询参数。
另外这里为了方便,我把cookie放到he ...
懂了懂了膜拜大佬
页:
[1]