Python实例之抓取HTML中的数据并保存为TXT
本实例实现了抓取捧腹网中存储于html中的笑话数据(非JSON数据)
通过浏览器相关工具发现捧腹网笑话页面的数据存储在HTML页面而非json数据中,因此可以直接使用soup.select()方法来抓取数据,具体实现代码如下:
import requests
from bs4 import BeautifulSoup
restr = ''
for j in range(1,51): #一共抓取50个页面的数据
html = 'https://www.pengfu.com/xiaohua_'+str(j)+'.html'
res = requests.get(html)
res.encoding = 'utf-8' #html_doc = str(res.content,'utf-8')亦可
soup = BeautifulSoup(res.text,'lxml')
h1 = soup.select('h1[class=dp-b]')
con = soup.select('.content-img')
for i in range(0,10): #每页抓取10条笑话
rh1 = '笑话标题:' + h1[i].text.strip().replace('\n','')
rcon = '笑话内容:' + con[i].text.strip().replace('\n','')
restr += rh1
restr += '\n'
restr += rcon
restr += '\n\n'
print('当前正在读取第'+str(j)+"页的第"+str(i+1)+'条笑话...')
f = open('捧腹网笑话500条.txt','w',1,'UTF-8')
f.write(restr)
print('正在保存。。。')
f.close
print('保存完毕!')
Python实例之抓取HTML中的数据并保存为TXT的更多相关文章
- Python实例之抓取淘宝商品数据(json型数据)并保存为TXT
本实例实现了抓取淘宝网中以‘python’为关键字的搜索结果,经详细查看数据存储于html文档中的js脚本中,数据类型为JSON 具体实现代码如下: import requests import re ...
- Python 3.6 抓取微博m站数据
Python 3.6 抓取微博m站数据 2019.05.01 更新内容 containerid 可以通过 "107603" + user_id 组装得到,无需请求个人信息获取: 优 ...
- Python小爬虫——抓取豆瓣电影Top250数据
python抓取豆瓣电影Top250数据 1.豆瓣地址:https://movie.douban.com/top250?start=25&filter= 2.主要流程是抓取该网址下的Top25 ...
- Python实例之抓取网易云课堂搜索数据(post方式json型数据)并保存到数据库
本实例实现了抓取网易云课堂中以‘java’为关键字的搜索结果,经详细查看请求的方式为post,请求的结果为JSON数据 具体实现代码如下: import requests import json im ...
- 【转】Python爬虫:抓取新浪新闻数据
案例一 抓取对象: 新浪国内新闻(http://news.sina.com.cn/china/),该列表中的标题名称.时间.链接. 完整代码: from bs4 import BeautifulSou ...
- Python爬虫:抓取新浪新闻数据
案例一 抓取对象: 新浪国内新闻(http://news.sina.com.cn/china/),该列表中的标题名称.时间.链接. 完整代码: from bs4 import BeautifulSou ...
- Python爬虫:抓取手机APP的数据
摘要 大多数APP里面返回的是json格式数据,或者一堆加密过的数据 .这里以超级课程表APP为例,抓取超级课程表里用户发的话题. 1.抓取APP数据包 表单: 表单中包括了用户名和密码,当然都是加密 ...
- 《与小卡特一起学Python》Code3 抓取网页中的某个数据
import urllib2 file = urllib2.urlopen('http://common.cnblogs.com/script/jquery.js') message = file.r ...
- 浅谈如何使用python抓取网页中的动态数据
我们经常会发现网页中的许多数据并不是写死在HTML中的,而是通过js动态载入的.所以也就引出了什么是动态数据的概念, 动态数据在这里指的是网页中由Javascript动态生成的页面内容,是在页面加载到 ...
随机推荐
- mysql 修改表字段长度
方案一: change ALTER TABLE t1 CHANGE a a VARCHAR(); change 可以用来更改字段名称和类型 ALTER TABLE table_name CHANGE ...
- SQL-52 获取Employees中的first_name,查询按照first_name最后两个字母,按照升序进行排列
题目描述 获取Employees中的first_name,查询按照first_name最后两个字母,按照升序进行排列CREATE TABLE `employees` (`emp_no` int(11) ...
- namespace的作用
namespace的用法 1.什么是命名空间 通常我们学c++的时候经常看见头文件下有一句using namespace std,有什么用呢? 例如: #include<iostream> ...
- 一个redis因为关闭快照无法连接的BUG
[2018-04-19 11:00:08,587: ERROR/MainProcess] consumer: Cannot connect to redis://127.0.0.1:6379/0: M ...
- Java语法基础学习DayTwenty(反射机制续)
一.Java动态代理 1.代理设计模式的原理 使用一个代理将对象包装起来, 然后用该代理对象取代原始对象. 任何对原始对象的调用都要通过代理. 代理对象决定是否以及何时将方法调用转到原始对象上. 2. ...
- 20175223 姚明宇 MyCP
目录 MyCP 要求 代码运行编译及文本输出输入结果 目录树 代码运行编译: 文本输出输入结果: 源代码 码云链接 目录 MyCP 要求 编写MyCP.java 实现类似Linux下cp XXX1 X ...
- n个骰子的点数之和
题目:把n个骰子扔在地上,所有骰子朝上一面的点数之和为S.输入n,打印出S的所有可能的值出现的概率. 解题思路:动态规划 第一步,确定问题解的表达式.可将f(n, s) 表示n个骰子点数的和为s的排列 ...
- 使用Pretues仿真Arduino驱动步进电机
这几天想做一个给金鱼自动喂食的装置,所以学习了下如何操控步进电机,现在做个记录. 使用Pretues仿真Arduino的话,可以参考:http://www.geek-workshop.com/thre ...
- shell 统计字符串 字符个数
统计“abbc”中“b”的个数 1:awknum=`echo abbc | awk -F"b" '{print NF-1}'` 2:trnum=`echo abbc | tr -c ...
- SQL 姓名,联系方式-脱敏
SELECT ORDER_PROJECT.project_type AS attribute, ORDER_PROJECT.order_num, ,), "*") AS pv, C ...