使用Beautifulsoup打开网页中的链接

参考《Python编程快速上手——上繁琐工作自动化》第11章中的例子,打开男神个人博客页面中的链接。京东和百度的页面貌似都做了反爬措施,小白只好找最好爬的页面进行练习,看到博文后又心动了一下下。

以下是页面html

<ul class="post-list">
  
    
      <li>
        <span class="post-meta">Nov 12, 2018</span>

        <h2>
          <a class="post-link" href="/tech/2018/03/07/Reinforcement-Learning.html">笔记:Reinforcement Learning</a>
        </h2>
      </li>
    
      <li>
        <span class="post-meta">Jun 12, 2018</span>

        <h2>
          <a class="post-link" href="/tech/2018/03/05/tensorflow-learning.html">笔记:TensorFlow框架</a>
        </h2>
      </li>
       
  </ul>

step 1: 用request.get()接收目标页面的url
step 2:用bs4.Beautifiulsoup()解析页面html代码
step 3:用select()方法解析html标签,获得页面中链接所在的标签行,得到包含多个标签行的数组。
step 4:用get方法得到标签行数组中每个标签行中href属性后跟着的链接
step 5:用webbrowser.open()打开链接

import requests,sys,webbrowser,bs4,re

res=requests.get('https://facaiy.com')  #step1
res.raise_for_status()
soup=bs4.BeautifulSoup(res.text,'html.parser') #step2
linkElems=soup.select('.post-link') #step3
link=soup.select('.post-link') #step4
numOpen=len(link)
print(link[1])
print(link[1].get('href'))

for i in range(min(30,numOpen)):
    webbrowser.open('https://facaiy.com' + link[i].get('href')) #step5
    print (link[i].get('href'))

虽然是个很小的case,但是因为不太知道html语句的构成、如何解析html,耗了挺长时间,后来发现解析html的语句好像挺随意的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值