【极客学院】-python学习笔记-4-单线程爬虫 (提交表单抓取信息,实战练习)

极客学院课程地址:http://www.jikexueyuan.com/course/821_3.html?ss=1


向网页提交数据:


get,post 交互方式

分析目标网站

表单提交功能


get:从服务器获得数据

post:向服务器传数据


eg:

https://www.crowdfunder.com/browse/deals


request.post

步骤:构造表单,提交,获取返回信息


异步加载:菜做好一道上一道

不同于 菜做好了,再一次性上齐


网页 → 审查  → Headers  →  Request Method:GET (页面并没有 more,这里也没有POST)

Form Data → page:2


当有多个 page 的时候,直接提取,可能因为异步加载,无法提取到 more 的信息

这时 可以建立一个字典,并用 request.post 去提交表单,提取数据

#-*-coding:utf8-*-
import requests
import re

url='https://www.crowdfunder.com/'

data = {
    'entities_only':'true'<span style="background-color: rgb(153, 255, 153);">,</span>
    'page':'1'
}

html_post = requests.post(url<span style="background-color: rgb(153, 255, 153);">,</span>data=data)
title = re.findall('"card-title">(.*?)</div>', html_post.text, re.S)

for each in title:
    print (each)


继续

实战:

http://www.jikexueyuan.com/course/

前20页的 课程名称,课程介绍,课程时间,课程等级,学习人数


步骤:

requests获取网页

re.sub换页

正则表达式匹配内容


问题:

课程介绍,后面是省略号 的情况该怎么办?

爬虫只能爬到可以看到的

有的课程的课程介绍也可能为空


解决方案:

先抓大后抓小:


另:windows下将命令提示符的编码强制转化成utf-8

import  sys
reload(sys)
sys.setdefaultencoding("utf-8")



实践中遇到问题:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值