python 爬虫试手 requests+BeautifulSoup

本文介绍了作者在工作中从Java转到Python爬虫的原因,并选择了requests和BeautifulSoup作为工具来爬取数据。通过实例展示了如何使用这两个库解析糗事百科的页面结构,包括代码展示和输出结果。

工作需要,要爬取新浪微博数据,之前一直用java, 但是遇到页面加密很伤,转到python。先拿糗事百科试试python里爬虫的写法。

工具
requests
BeautifulSoup

工具参考
Python爬虫利器一之Requests库的用法
Python爬虫利器二之Beautiful Soup的用法

还有一个据说比较好用的PyQuery, 试用了下,难用的要死!class 里有空格就懵逼了。之前在Java里一直用Jsoup解析,比较顺手,相应的感觉比较适应于BeautifulSoup,废话不多说,搞起!

页面结构

这里写图片描述
这里写图片描述
这里写图片描述

代码

import requests

from bs4 import BeautifulSoup

page = 1
rooturl = 'http://www.qiushibaike.com/hot/page/' + str(page)

# payload = {'key1': 'value1', 'key2': 'value2'}
# r = requests.get( rooturl, params=payload)
pageReq = requests.get(rooturl)

pageString = pageReq.text

doc = BeautifulSoup(pageString, "lxml")

parents = doc.find('div', id='content-left')

for elem in parents.find_all(class_="article block untagged mb15", recursive=False):
    authorName = ""
    if len(elem.find(class_="author clearfix").select('a')) ==2:
        authorName = elem.find(class_="author clearfix").select('a')[1]['title']
    content = elem.find(class_="content").get_text().strip()
    num_laugh = elem.find_all("i", class_="number")[0].get_text()
    num_comments = elem.find_all("i", class_="number")[1].get_text()
    print "author: " + authorName + "\n" + "content: " + content + "\n" + num_laugh + " " + num_comments
    print "***************************************************"
# target = soup.select('#content-left > .article block untagged mb15')

输出结果

这里写图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值