python 页面信息抓取

时间:2021-08-03 08:44:47

1. 特点

  在python 解析html这篇文章中已经做了初步的介绍,接下来再坐进一步的说明。python抓取页面信息有以下两个特点:
  

  • 依赖于HTML的架构。

  • 微小的变化可能会导致抓取失败,这取决于你编码的技巧。


2. 抓取示例

  首先看一下百度视频网页的源代码,大致浏览下,选定要抓取的网页元素。
  python 页面信息抓取
  
  假设我们要对div标签id为focusCarouselList里的相关内容进行提取。首先进入python命令行环境,先按照以下代码打开网页并读取内容。
  

>>>
>>> import urllib
>>> from bs4 import BeautifulSoup
>>>
>>> httpRespone = urllib.urlopen(“http://video.baidu.com“)
>>>
>>> httpRespone.code
200
>>>

  将页面信息读入到html的一个变量中:html = httpRespone.read()
  使用BeautifulSoup解析这个页面:bs = BeautifulSoup(html,"lxml")
  查找id为ocusCarouselList的div标签:focusList = bs.find('div',id='focusCarouselList')
  
  python 页面信息抓取
  
  在focusList中查找这一div中所有的超链接:allLinks = focusList.find_all('a')
  可用allLinks[0]直接访问第一个链接的内容:
  python 页面信息抓取
  
  如果要在这些超链接中查找标题为“协警押送嫌犯遭其同伙袭击”,可用下面代码:
  videoLink1 = bs.find('a',{'title':'协警押送嫌犯遭其同伙袭击'})
  python 页面信息抓取
  
  videoLink1[‘href’]可以直接获取到链接的地址。
  
  查找所有图片的标签:imgLinks = focusList.find_all('img')
  获取某个图片链接的源地址:imgLinks[0]['src']
  python 页面信息抓取