python网络爬虫-正则表达式和BeautifulSoup

       在抓取网页时,BeautifulSoup和正则表达式总是配合使用的。其实,大多数支持字符串参数的函数(比如find(id="aTagIdHere"))都可以用正则表达式实现。让我们看几个例子,待抓取的网页时http://www.pythonscaping.com/pages/pages3.html。在爬取之前,我们观察发现网页上有几个商品图片,它们的源码形式如下:

<img src="../img/gifts/img1.jpg"/>
       如果我们想抓取所有图片的URL链接,非常直接的做法就是用findAll("img")抓取所有图片。但是有个问题,除了那些明显“多余的”图片,比如(LOGO)之外,新式网站中有一些隐藏图片,用于网页布局留白和元素对齐的空白图片,以及一些不易于察觉的图片标签。总之,你不能仅用商品图片来统计网页上所有的图片。而且网页的布局也可能会变化,或者,因为某些原因,我们不想通过图片在网页中位置来查找标签。那么当你想抓取随机分布在网站里的某个元素或数据时,就会出现问题。例如,一些网页的最上面可能有一张商品图片,但是在另外一些网页上没有。

      解决这类问题的办法,就是直接定位那些标签来查找信息。在本例中,我们直接通过商品图片的文件路径来查找:

from urllib.request import urlopen
from bs4 import BeautifulSoup
import re
html=urlopen("http:/
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值