爬虫学习

####Example######
import requests
import re  ###正则表达式
url = 'https://maoyan.com/films'
response = requests.get(url)
##print(response.text)
n = response.text
p1 = re.compile(r'script')
p2 = re.compile(r'[li]')
t1 = re.findall(p1, n)
t2 = re.findall(p2,n)
print(t2)


match 函数:尝试从字符串string的起始位置匹配一个pattern模式,如果不是从起始位置匹配成功的话,返回None
      参数:pattern, string, flags
      flags:标志位,用于控制正则表达式的匹配方式(是否大小写,是否多行匹配)
           re.I:匹配时,不区分大小写
           re.L:做本地化识别
           re.M:多行匹配
           re.S: 使.匹配包含换行符在内的所有字符
           re.U:根据Unicode字符集解析字符,影响\w, \W, \b, \B
           re.X:通过给予我们功能灵活的格式以便更好的理解正则表达式
          
search函数:扫描整个字符串,并返回第一个成功的匹配位置
findall函数:扫描整个字符串,并返回结果的列表

正则表达式:
import re
.   匹配任意单个字符(除了\n)
^   匹配字符串的开头,多行匹配每一行开头
$   匹配字符串的结尾,多行匹配每一行末尾
\d  匹配任意一个数字字符
\D  匹配任意一个非数字字符
\w  匹配单词字符(A-Z,a-z,0-9,_)
\W  匹配非单词字符(也可以用^\w)
[...] 匹配任意单个字符
\s   匹配空白字符(空格、\t\r\n\f)
\S   匹配非空白字符(也可以用^\s)
\A   仅匹配字符串开头
\Z   仅匹配字符串末尾
\b   匹配\w和\W之间
\B


数量词
*    匹配一个字符0次或者多次
+    匹配前一个字符1次或者多次
?    匹配前一个字符0次或者1次
{m}  匹配前一个字符m次
{m,n} 匹配前一个字符m至n次
数量词?  变成非贪婪模式


re.compile() 
贪婪模式和非贪婪模式

一、匹配单个字符
.   匹配任意单个字符(除了\n)
[...] 匹配任意单个字符
[a-z] 
[A-Z]
[0-9]
[a-zA-Z]
[a-zA-Z0-9]
[^...^] 匹配非''中的字符,例如[^abc^],匹配除了abc之外的任意一个字符
\d  匹配任意一个数字字符
\D  匹配任意一个非数字字符
\w  匹配单词字符(A-Z,a-z,0-9,_)
\W  匹配非单词字符(也可以用^\w)
[...] 匹配任意单个字符
\s   匹配空白字符(空格、\t\r\n\f)
\S   匹配非空白字符(也可以用^\s)
print(re.findall(r"ww[12345]", "ww1adddbcww3"))
##能匹配ww1,ww2,ww3,ww4,ww5
print(re.findall(r"ww.", "ww1adddbcww3"))


二、锚字符
^   行首匹配
$   行尾匹配


print(re.search(r"^www", "wwwabc")) 匹配www开头的字符串
print(re.search(r"cg$", "wwwabcg"))  匹配cg字符结尾的字符串


//beatifulsoup bs4
爬虫模块:urllib urllib2,requests,bsp,scrapy,lxml
import requests
from bs4 import BeautifulSoup
import urllib urllib2


//find
html = '<div class="a">class a,div</div><div class="b">class b,div</div>'
soup = BeautifulSoup(html, 'html.parser') ###用html.parser解释方式,
print(soup.div)
b=soup.find('div', class_="b").text ###查找标签里的内容
print(b)


//find_all
website = '<a href=wwww.baidu.com></a>'
soup1 = BeautifulSoup(website, 'html.parser')
c = soup1.find_all('a')
print(c)
for d in c:
    link = d.get('href')
print(link)
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值