当前位置: > python爬虫 >

python爬虫之 Urllib2 与 BeautifulSoup4 抓取解析网页
栏目分类:python爬虫   发布日期:2019年01月30日 22:22:29   浏览次数:

       运用原生的RE模块完成网页解析对于熟知正则表达式的朋友来说是SO EASY的一件事,但对于新人来说是有一定难度和复杂性的,接下来就让我来介绍如何利用第三方解析包来解析获取到的网页。

python爬虫 Urllib2 与 BeautifulSoup4

 
一,首先来获取网页内容。

二,其次我来解析一下上图中几个位置的对应资料
- 作者信息 
- 段子文字部分 
- 段子图片部分(如果没有图片则没有这个元素) 
- 段子评分以及评论
这里可以运用urllib2来获取网页内容,代码是


# -*- coding: utf-8 -*-
import urllib
import urllib.request
 
url = "http://www.qiushibaike.com/imgrank/"
print(url)
user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
req = urllib.request.Request(url, headers={
    'User-Agent': 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
})
response = urllib.request.urlopen(req)
content = response.read().decode('utf-8')
print(content)

由此运行成功获得网页

三,然后就是解析htmi了,先引入包


from bs4 import BeautifulSoup

链接分开解析,
通过使用解析来获取作者头像链接,在这串代码最后面添加代码


soup = BeautifulSoup(content, "lxml")
items = soup.select("div.author a img")
for item in items:
    print(item['src'])

四,最后一次性解析

这里可以运用解释器lxml, 也可以运用自带的html.parser解析器来解析文档,然后运行就可以了
上述解析已经学会使用beautifulsoup来解析html, 现在来解析细节的东西,最终代码如下


# -*- coding: utf-8 -*-
from bs4 import BeautifulSoup
import urllib
import urllib.request
 
url = "http://www.qiushibaike.com/"
print(url)
user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
req = urllib.request.Request(url, headers={
    'User-Agent': 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
})
response = urllib.request.urlopen(req)
content = response.read().decode('utf-8')
print(content)
soup = BeautifulSoup(content, "lxml")
items1 = soup.select("div.author a img")
items2 = soup.select("a div.content span")
items3 = soup.select("div.thumb a img")
n = 0
length1 = len(items1)
length3 = len(items3)
while n < length1:
    print('作者信息:\n名称:'+items1[n]['alt']+'\n头像链接:'+items1[n]['src']+'\n\n')
    print('段子信息:\n段子:'+items2[n].text+'\n')
    #以免有些没有图片的段子报错
    if n < length3:
        print('段子图片链接:'+items3[n]['src']+'\n\n\n')
    else:
        print('\n\n\n')
    n += 1

运行,这样我们的网页数据就已经全部搜查出来了

相关热词:

热门关键词
python字符串
     
python教程 python爬虫 python人工智能 Python+大数据 python问答