吾八哥博客

您现在的位置是:首页 > 码农手记 > Python > 正文

Python

使用urllib和bs4实现简单的爬虫程序

吾八哥2018-01-19Python894

接触Python有段时间了,一直都听说Python写爬虫多么的强大,俺之前也使用其他语言写过爬虫程序,今天就来使用Python来练习练习,目的是爬取吾八哥网(Http://www.5bug.wang)首页所有的文章内容标题,链接,作者,以及内容信息。使用到了urllib和bs4模块,其中bs4模块需要提前安装一下,安装方法为执行命令:pip install bs4,非常简单的!下面贴出我的练习代码:

import urllib.request
import re
import bs4

#获取首页html内容
url_home = 'http://www.5bug.wang'
response = urllib.request.urlopen(url_home)
html = response.read().decode('utf8')

#使用正则表达式来匹配所有的文章链接
soup = bs4.BeautifulSoup(html, 'html.parser')
pattern = 'http://www.5bug.wang/([\s\S]*)\.html'
links = soup.find_all('a', href=re.compile(pattern))
url_set = set()
for link in links:
    url_set.add(link['href'])

#根据抓取到的文章链接,来进一步抓取文章页面具体信息
for url in url_set:
    response = urllib.request.urlopen(url)
    html = response.read().decode('utf8')
    soup = bs4.BeautifulSoup(html, 'html.parser')
    page = soup.find('div',{'class', 'content'})
    url = url
    title = page.find('h1').get_text()
    author = page.find('h4').get_text()
    content = page.find('article').get_text()
    #print(title, url, author, content)
    print(title, url, author)  #为了截图,不打印具体的文章内容信息

print('抓取完成!=====================================================')

还是比较简单的,不过这里面没有做什么异常处理,后面我们慢慢的进行完善!以上代码,运行截图如图:

爬虫.png