爬虫心得

爬虫主要通过requests.get(url,params,headers,datas)来获取页面信息,再通过数据解析来捕获自己所需要的信息,其中headers需要添加‘User-Agent’来实现伪装。

    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3722.400 QQBrowser/10.5.3776.400',	# 伪装成浏览器
        'Referer': 'http://jwch.xxx.edu.cn/'	# 设置父页面,防止被拦截
    }
	"""请求方式"""
   	session = requests.Session()		# 设置session保存,可进入需登录的页面
    response = session.post(url=login_url, headers=headers, data=data)	# 进行登录请求
    #print(response.status_code)  # 测试是否登陆成功,200为成功
    login_page_text = response.text  # 获取登录后返回信息
    id = re.findall("id=(\d*)", login_page_text)[0]		# 通过正则提取登录后数据地址
    detail_url = 'http://xx.xx.xxx.xx/right.aspx?id='+id	# 再次进行请求
    detail_page_text = session.get(url=detail_url, headers=headers).text	# 获取所需要的文本(未提取)

数据解析是获取所需要的信息,可使用正则表达式、xpath、bs4之类的方法来实现
在本次的作业中主要使用的是xpath的方法,在一些通过xpath方法难以实现的地方可以选择改为使用正则表达式来解决。

	# 使用xpath对目标信息进行解析提取
    tree = etree.HTML(detail_page_text)
    lesson = tree.xpath('//span[@id="LB_kb"]/table//tr')	# 得到了目标信息

爬取部分动态的信息例如阅读量时,直接对页面进行请求,页面信息因需要进行ajax才能对模板进行渲染,所以无法得到数据。模拟浏览器发送ajax请求才能将数据补充完整。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值