阿布云

你所需要的,不仅仅是一个好用的代理。

Python 爬虫实战

阿布云 发表于

 

1. 抓取糗事百科热门段子

2. 过滤带有图片的段子

3. 实现每按一次回车显示一个段子的发布时间,发布人,段子内容,点赞数。

糗事百科是不需要登录的,所以也没必要用到 Cookie,另外糗事百科有的段子是附图的,我们把图抓下来图片不便于显示,那么我们就尝试过滤掉有图的段子吧。

好,现在我们尝试抓取一下糗事百科的热门段子吧,每按下一次回车我们显示一个段子。

1. 确定 URL 并抓取页面代码

首先我们确定好页面的 URL 是 http://www.qiushibaike.com/hot/page/1,其中最后一个数字 1 代表页数,我们可以传入不同的值来获得某一页的段子内容。

我们初步构建如下的代码来打印页面代码内容试试看,先构造最基本的页面抓取方式,看看会不会成功

Python demo

Python

# -*- coding:utf-8 -*- import urllib import urllib2 page = 1 url = 'http://www.qiushibaike.com/hot/page/' + str(page) try: request = urllib2.Request(url) response = urllib2.urlopen(request) print response.read() except urllib2.URLError, e: if hasattr(e,"code"): print e.code if hasattr(e,"reason"): print e.reason

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

# -*- coding:utf-8 -*-

import urllib

import urllib2

page = 1

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

try:

    request = urllib2.Request(url)

    response = urllib2.urlopen(request)

    print response.read()

except urllib2.URLError, e:

    if hasattr(e,"code"):

        print e.code

    if hasattr(e,"reason"):

        print e.reason

 抓取过于频繁,服务器返回429.这个时候需要切换代理IP了,推荐使用阿布云代理,阿布云代理IP,提供高匿代理,爬虫代理.

来源:https://geekspider.org/