python 爬虫基础

 HTTP 请求库

urllib 或 requests

  • urllib.request请求页面(requests是第三方的,比urllib慢一点)
    • html = urllib.request.urlopen(url)
    • data = html.read()
    • html.geturl() 获取地址,没想到应用场景
    • html.getcode() 获取状态码,200说明是正常访问
  • 下载:urllib.request.urlretrieve(网址, 保存名);

内容获取(匹配方法)

正则表达式

import re
def Get_Data_Img(data)
    # re_01 = r'[a-zA-z]+://[^\s]*.jpg';
    re_01 = r'https://d-paper.i4.cn/max/[^\s]*.jpg'#大图的  
    pat = re.compile(re_01)# 创建一个正则表达式的模板    
    imgurls = re.findall(pat,data);# 开始匹配
    print(len(imgurls), imgurls)
    i = 0
    for imgurl in imgurls:
        print("第%d张图片地址:%s"%(i,imgurl))
        urllib.request.urlretrieve(imgurl,"./image/%d.jpg"%i)#下载
        i+=1;
Get_Data_Img(str(data))#强制类型转换

Beautifulsoup

将复杂HTML文档转换成一个复杂的树形结构,

  • soup = BeautifulSoup(data,"html.parser")
  • 用“.xxx” 来获取名为xxx子标签
  • soup.find("meta",attrs={"name":"description"}) 找第一个满足标签和属性条件的标签
    • find_all找到的是所有的,返回list
  • .test或.string返回一个标签的内容
  • eg:soup.div['title']获取div标签里的title属性的内容

反反爬

  • 模拟浏览器:在Netword里的header里看浏览器的User-Agent信息,用requests的话, req = requests.get(new_url,header),然后html = req.content或req.text
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值