爬虫专用网站glidedsky-爬虫-基础第一关

哈喽!大家好!

分享一个专门用于检验你爬虫技术的网站,不会被请去喝茶的专用网站glidedsky

爬虫-基础第一关

废话不多说,自学Python两个月,第一次分享,过第一关着实废了不少功夫,以前学的不扎实,又翻了模拟登陆,去空格,计算数字等等重新学了一遍,最后才成功了,打算记录下来,虽然过程有点繁琐,但都是一步一个脚印踩出来的,虽然有便捷的方法,但我想用自己的方式拿下来,只有这样才更能理解爬取的整个过程是怎么回事,如若有不足之处还请多多指教!

完整代码如下:

import requests
from lxml import etree
import re

header = {
    'user-agent': '你自己的UA,不知道的同学可以网上找怎么弄,很简单',
}

# 定义一个变量等下用来存放计算结果
result = 0

#创建session保持回话连接
s = requests.Session()
url = 'http://www.glidedsky.com/login'

#发送get请求获取登陆页面信息
res = s.get('http://www.glidedsky.com/login',headers=header).text

#使用re解析登陆页面,得到token值
token = re.findall('<input type="hidden" name="_token" value="(.*?)">',res)[0]

#将token和账号密码封装成字典
data = {
    '_token': token,
    'email': '你自己的登陆账号',
    'password': '你自己的登陆密码',
}

# 发送post请求,携带data模拟登陆,并获取页面源代码
req = s.post(url=url,data=data).text

# 用xpath解析得到题目所在连接
html = etree.HTML(req)
text_url = html.xpath('//td[@class="col-8"]/a/@href')[0]

# 再次发送get请求获取题目所在页面信息
req_url = s.get(url=text_url,headers=header).text

# 再次解析获得题目详情页面连接,并拼接成完整链接
math_url = 'http://www.glidedsky.com'+re.findall('<a href="(.*?)" target="_blank"',req_url)[0]

# 再次发送get请求获取题目详细信息
text = s.get(url=math_url,headers=header).text
# 解析页面获取数字

tree = etree.HTML(text)
for text_data in tree.xpath('//div[@class="row"]/div/text()'):
    #去掉字符串左右两侧空格
    num = int(text_data.strip())
    result += num
print(result)

如果帮助到了你,可以点赞,我是木子,我们一起学习交流,一起成长。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lemuzhi_零度

作者幸苦,犒劳一下

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值