求一个网页的数字之和
1.打开需要爬取的网址http://glidedsky.com/
由于这个网站需要登录账号,所以我们需要先登录该网站然后获取到cookie信息,步骤如下:
1.登录到该网站,复制出cookie和headers
2.右键查看源代码,可以发现网页中的所有数字都在
这个标签里,知道这些我们就可以通过正则表达式来进行匹配所需要的数字了
import requests
import re
from lxml import etree
url = "http://glidedsky.com/level/web/crawler-basic-1"
header = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36'
' (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36 Edg/99.0.1150.46',
'Cookie': '*************这里写入上面复制到的cookie***************'
}
r = requests.get(url=url,headers=header).text
#print(r)
#***********
#正则表达式解析网页数据
num = re.findall('<div class="col-md-1".*?(\d+)',r,re.S) #正则表达式匹配到数字
#print(num)
s = 0
for i in num:
s = s+int(i)
print(s)
#*************#
#Xpath解析数据
num = lxml.etree.HTML(r)
print(num)
num_list = num.xpath('/html/body//div[@class="col-md-1"]/text()')
s = 0
for i in num_list:
s = s+int(i)
print(int(i))
print(s)
#*************#
运行结果如下:(每个人的答案都不一样)