pandas网络爬虫(一)

说到网络爬虫,就要提到正则表达式和urllib库

python自带re模块和urllib模块

--------------------------------------------------------------------------------------------------------------------------------

正则表达式

正则表达式,又称规则表达式,通常用来检索、替换那些符合某个模式(规则)的文本。

1.原子

\w:用来匹配字母、数字、下划线;

\d:用来匹配数字;

\s:用来匹配空白字符;

\W、\D、\S用来匹配与\w、\d、\s相反的字符。

2、元字符

.:用来匹配任意字符;

^:用来匹配开始位置;

$:用来匹配结束位置;

*:表示重复0次及以上;

?:表示重复0次或一次;

+:表示重复一次及以上;

{3}:表示恰好出现3次;

{3,}:表示至少出现3次;

{4,7}:表示至少出现4次,至多出现7次;

t|s:表示出现t或者s;

[jsz]:表示出现j/s/z中的任意一个;

3.模式修正符

i:不区分大小写;

M:多行匹配;

U:根据unicode进行匹配;

S:让”.“也匹配换行符;

4.贪婪模式与懒惰模式

贪婪模式:尽可能多的匹配;

懒惰模式:尽可能少的匹配;

如上所示:pat就是贪婪模式,pat2就是懒惰模式。

5.正则表达式函数

有re.match函数、re.search函数、全局匹配函数和re.sub函数。

re.match函数要从头开始匹配,举例子如下:

全局匹配函数就要会找到所有符合规则的子字符串,而不像search函数只会匹配到第一个复合条件的。

re.compile(pat).findall(string)

pat指的是正则规则,string表示要查找的文本。

re.sub是个正则表达式方面的函数,用来实现通过正则表达式,实现比普通字符串的replace更加强大的替换功能。简单的替换功能可以使用replace()实现。

----------------------------------------------------------------------------------------------------------------------------------

要系统学习urllib模块,我们从urllib基础开始。这个知识点中,我会向大家介绍urlretrieve()函数、urlcleanup()函数、info()函数

以及getcode()函数、geturl()函数等。

urllib.request.urlretrieve(url,filename=None)

利用urlretrieve() 将数据下载到本地。

- 参数 finename 指定了保存本地路径(如果参数未指定,urllib会生成一个临时文件保存数据。)

urlcleanup()

可以将urlretrieve()中的缓存清理掉;

info()

可以将当前的基本环境信息显示出来;

getcode()

获取当前的网页的状态码,geturl()获取当前的网页的网址, 200状态码表示网页正常,403表示不正常。

------------------------------------------------------------------------------------------------------------------------------------

自动模拟HTTP请求

1.get请求

如上所示,这就是一个简单的get请求以及网络爬虫

https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&tn=baidu&wd=python&oq=python&rsv_pq=97f9cf6d0003595c&rsv_t=fcb7JtYRoovz9V3yOoFkx6Q61ZRxJN73%2BKxJrCuYB2lpWty6GxAxo4uuUco&rqlang=cn&rsv_enter=1&rsv_sug2=0&rsv_dl=tb&inputT=6&rsv_sug4=7

这是一个百度搜索的网址,一些繁琐的东西我们可以拿掉,保留下重要的信息

http://www.baidu.com/s?wd=        (这就是我们经过分析得到的规则)

2.post请求

首先,我们打开https://www.iqianyue.com/mypost/网页,查看源代码,找到我们要提交的内容

name属性里面就是我们要提交的内容,有时候我们需要进行抓包,找到提交表单的正确url

这就是提交表单前和表单后的网页。

 

学习一定要多敲代码,多敲,多敲,一点点地进步!!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值