Python 爬虫系列:糗事百科最热段子

1.获取糗事百科url

http://www.qiushibaike.com/hot/page/2/    末尾2指第2页

2.分析页面,找到段子部分的位置, 需要一点CSS和HTML的知识

3、编写代码

 1 import urllib.request
 2 from bs4 import BeautifulSoup
 3 from urllib.request import URLError
 4 from urllib.request import HTTPError
 5 import time
 6 # 调用 publicHeaders 文件的方法
 7 from 爬虫.publicHeaders import set_user_agent
 8
 9
10 # 抓取网页
11 def download(pagenum):
12     url = r‘https://www.qiushibaike.com/hot/page/‘
13
14     # 分页下载
15     for i in range(1,pagenum):
16         #组装url
17         new_url = url + str(pagenum)
18         print(new_url)
19         # 有的时候访问某个网页会一直得不到响应,程序就会卡到那里,我让他1秒后自动超时而抛出异常
20         header = set_user_agent()
21         while 1:
22             try:
23                 req = urllib.request.Request(url=new_url,headers=header)
24                 reponse = urllib.request.urlopen(req,timeout=1)
25                 break
26             # HTTPError是URLError的子类,在产生URLError时也会触发产生HTTPError。因此应该先处理HTTPError
27             except HTTPError as e:
28                 print(e.code)
29                 # 对于抓取到的异常,让程序停止1.1秒,再循环重新访问这个链接,访问成功时退出循环
30                 time.sleep(1.1)
31             except URLError as err:
32                 print(err.reason)
33         # 正常访问,则抓取网页内容
34         html = reponse.read().decode(‘utf-8‘)
35         # 找到所有的class名称为content 的div
36         soup = BeautifulSoup(html,"html.parser")
37         contents = soup.findAll("div",{"class":"content"})
38         # # 循环遍历保存每一项,并保存
39         with open("E:\JustForFun.txt", "w") as f:
40             for item in contents:
41                 # 有些内容不是utf-8格式
42                 try:
43                     each_story = item.get_text()
44                 #print(type(each_story))
45                     f.writelines(each_story)
46                 except:
47                     pass

4、执行以下,结果如下:

原文地址:https://www.cnblogs.com/scios/p/8673033.html

时间: 2024-10-13 15:22:17

Python 爬虫系列:糗事百科最热段子的相关文章

python爬取糗事百科段子

初步爬取糗事百科第一页段子(发布人,发布内容,好笑数和评论数) 1 #-*-coding:utf-8-*- 2 import urllib 3 import urllib2 4 import re 5 page = 1 6 url ='http://www.qiushibaike.com/hot/page/'+str(page) #第一页URL 7 headers={'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/

使用Python爬取糗事百科热门文章

默认情况下取糗事百科热门文章只有35页,每页20条,根据下面代码可以一次性输出所有的文章,也可以选择一次输出一条信息,回车继续.不支持图片内容的显示,显示内容包括作者,热度(觉得好笑的人越多,热度越高),内容.从热度最高开始显示到最低.实现代码如下: #!/usr/bin/python #coding:utf8 """ 爬取糗事百科热门文章 """ import urllib2 import re #模拟浏览器访问,否则无法访问 user_age

Android实战——jsoup实现网络爬虫,糗事百科项目的起步

Android实战--jsoup实现网络爬虫,爬糗事百科主界面 本篇文章包括以下内容: 前言 jsoup的简介 jsoup的配置 jsoup的使用 结语 前言 对于Android初学者想要做项目时,最大的烦恼是什么?毫无疑问是数据源的缺乏,当然可以选择第三方接口提供数据,也可以使用网络爬虫获取数据,这样就不用第三方数据作为支持.本来是打算爬一些购物网站的数据,由于他们的反爬做得好,所以没办法爬到数据,只能爬取糗事百科的数据,或许聪明的你会想到可以高仿个糗事百科作为自己的练手项目,利用jsoup是

python 爬取糗事百科 gui小程序

前言:有时候无聊看一些搞笑的段子,糗事百科还是个不错的网站,所以就想用Python来玩一下.也比较简单,就写出来分享一下.嘿嘿 环境:Python 2.7 + win7 现在开始,打开糗事百科网站,先来分析.地址:https://www.qiushibaike.com 一般像这种都是文本的话,查看源代码就可以看到内容了. 已经可以看到都是在一个class 为content 的div里面,这样就很简单了,直接上正则表达式来匹配就好了. <div.*?class="content"&

[Python]爬取糗事百科

# coding=utf-8 import urllib2 import urllib import re class QiuShi: def _init_(self): self.page = 1 # 从网页获取糗事 def GetQiuShis(self,page): #网址 url = "http://www.qiushibaike.com/hot/page/"+page #伪装浏览器 user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5

python简单爬虫-----爬糗事百科段子

#-*-coding:utf-8 -*- import urllib2 import sys import re reload(sys) sys.setdefaultencoding('utf-8') url='http://www.qiushibaike.com/hot/page/1/' header={'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64)'} try:         page=1         while True:     

Python爬取糗事百科示例代码

参考链接:http://python.jobbole.com/81351/#comment-93968 主要参考自伯乐在线的内容,但是该链接博客下的源码部分的正则表达式部分应该是有问题,试了好几次,没试成功.后来在下面的评论中看到有个使用BeautifulSoup的童鞋,试了试,感觉BeautifulSoup用起来确实很便捷. 1 # -*- coding:utf-8 -*- 2 3 ''' 4 Author:LeonWen 5 ''' 6 7 import urllib 8 import ur

Python 爬取糗事百科段子

直接上代码 #!/usr/bin/env python # -*- coding: utf-8 -*- import re import urllib.request def gettext(url,page): headers=("User-Agent","Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/53

爬取糗事百科的热门段子,以及热图链接

# -*- coding:utf-8 -*- import urllib import urllib2 from bs4 import BeautifulSoup import re import os page = 1 while page<10 : url = 'http://www.qiushibaike.com/hot/page/' + str(page) user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)' head