bs去除特定标签。

# url
import easygui as g
import urllib.request
from bs4 import BeautifulSoup
import os
import sys
import re
import config.story2 as urls # 获取url
def set_url(): msg = "请填写一下信息(其中带*号的项为必填项)"
title = "爬虫练习"
fieldNames = ["*小说目录地址", "*组装前半段", "后半段"]
fieldValues = []
fieldValues = g.multenterbox(msg, title, fieldNames)
while True:
if fieldValues == None:
break
errmsg = ""
for i in range(len(fieldNames)):
option = fieldNames[i].strip()
if fieldValues[i].strip() == "" and option[0] == "*":
errmsg += ("【%s】为必填项 " % fieldNames[i])
if errmsg == "":
break
fieldValues = g.multenterbox(errmsg, title, fieldNames, fieldValues) return fieldValues # 下载网页内容,找到文章标题和对应的下载路径
def get_urls(seed_url,pre_url,last_url):
# 保存文章名称和地址
storyList = {}
response = urllib.request.urlopen(seed_url)
html = response.read().decode('utf-8')
bs = BeautifulSoup(html, "html.parser")
contents = bs.find_all("div", {"class": "c-line-bottom"})
for each in contents:
# 或者文章的data-nsrc属性
nsrc = each.a["data-nsrc"]
#组装url
seed_url = pre_url+nsrc+last_url
# 获取文件标题
title = each.p.string
storyList[title] = seed_url return storyList # 获取每个小说并下载
def getStory():
savepath = r"E:\\stories\\"
storyList = get_urls(urls.url1,urls.url2,urls.url3)
storyNames = list(storyList.keys())
for i in range(len(storyNames)):
# 获取小说:
html = urllib.request.urlopen(storyList[storyNames[i]]).read().decode('utf-8')
bs = BeautifulSoup(html,"html.parser") [s.extract() for s in bs('br')] # 后来发现这个可以啊
content = bs.find_all('p')
#[ss.extract() for ss in content('p')] # 放到这里是否可以,发现不行。TypeError: 'ResultSet' object is not callable
# # 用替换方式去掉br修饰,发现不行
# oldstr = r'<br style="font-size:16px;font-weight:normal;' \
# r'margin-left:4px;margin-right:4px;float:none;color:rgb(0, 0, 0);' \
# r'text-align:-webkit-auto;text-indent:0px;white-space:normal;' \
# r'text-overflow:clip;clear:none;display:inline;"/>'
# # print(content) with open(savepath+storyNames[i]+".txt",'w') as f:
f.writelines(str(content)) # download(get_url())
# get_url()
getStory()

python 爬虫练习的更多相关文章

  1. Python 爬虫模拟登陆知乎

    在之前写过一篇使用python爬虫爬取电影天堂资源的博客,重点是如何解析页面和提高爬虫的效率.由于电影天堂上的资源获取权限是所有人都一样的,所以不需要进行登录验证操作,写完那篇文章后又花了些时间研究了 ...

  2. python爬虫成长之路(一):抓取证券之星的股票数据

    获取数据是数据分析中必不可少的一部分,而网络爬虫是是获取数据的一个重要渠道之一.鉴于此,我拾起了Python这把利器,开启了网络爬虫之路. 本篇使用的版本为python3.5,意在抓取证券之星上当天所 ...

  3. python爬虫学习(7) —— 爬取你的AC代码

    上一篇文章中,我们介绍了python爬虫利器--requests,并且拿HDU做了小测试. 这篇文章,我们来爬取一下自己AC的代码. 1 确定ac代码对应的页面 如下图所示,我们一般情况可以通过该顺序 ...

  4. python爬虫学习(6) —— 神器 Requests

    Requests 是使用 Apache2 Licensed 许可证的 HTTP 库.用 Python 编写,真正的为人类着想. Python 标准库中的 urllib2 模块提供了你所需要的大多数 H ...

  5. 批量下载小说网站上的小说(python爬虫)

    随便说点什么 因为在学python,所有自然而然的就掉进了爬虫这个坑里,好吧,主要是因为我觉得爬虫比较酷,才入坑的. 想想看,你可以批量自动的采集互联网上海量的资料数据,是多么令人激动啊! 所以我就被 ...

  6. python 爬虫(二)

    python 爬虫 Advanced HTML Parsing 1. 通过属性查找标签:基本上在每一个网站上都有stylesheets,针对于不同的标签会有不同的css类于之向对应在我们看到的标签可能 ...

  7. Python 爬虫1——爬虫简述

    Python除了可以用来开发Python Web之后,其实还可以用来编写一些爬虫小工具,可能还有人不知道什么是爬虫的. 一.爬虫的定义: 爬虫——网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区 ...

  8. Python爬虫入门一之综述

    大家好哈,最近博主在学习Python,学习期间也遇到一些问题,获得了一些经验,在此将自己的学习系统地整理下来,如果大家有兴趣学习爬虫的话,可以将这些文章作为参考,也欢迎大家一共分享学习经验. Pyth ...

  9. [python]爬虫学习(一)

    要学习Python爬虫,我们要学习的共有以下几点(python2): Python基础知识 Python中urllib和urllib2库的用法 Python正则表达式 Python爬虫框架Scrapy ...

  10. python爬虫学习(1) —— 从urllib说起

    0. 前言 如果你从来没有接触过爬虫,刚开始的时候可能会有些许吃力 因为我不会从头到尾把所有知识点都说一遍,很多文章主要是记录我自己写的一些爬虫 所以建议先学习一下cuiqingcai大神的 Pyth ...

随机推荐

  1. (总结)Ubuntu apt-get apt-cache命令 使用

    http://rsljdkt.iteye.com/blog/1142463 apt-cache search wubipinyin apt-get命令本身并不具有管理软件包功能,只是提供了一个软件包管 ...

  2. stm32型号解读

      ST意法半导体在牵手ARM后可以说是做的非常成功,抓住了从普通MCU到ARM的市场转变的机会.由于ST公司的STM32系列ARM 使用了完善的库开发,作为芯片的应用者不用从底层的寄存器来实现每个功 ...

  3. 微信支付WxpayAPI_php_v3 错误修改

    微信sdk:WxpayAPI_php_v3 这是下载压缩包的目录结构. https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=11_1 ce ...

  4. Python根据多个空格Split字符串

    下面的String: 1 沪1 上海市 1850 1350 400 1300 1186/1644(嘉定约100,松江69 奉贤68 2007年上海常住人口1858万人,户籍人口1378.86万人,来沪 ...

  5. ShardedJedisPool的使用

    package com.test; import java.util.ArrayList; import java.util.List; import redis.clients.jedis.Jedi ...

  6. Python实现邮件的批量发送

    Python实现邮件的批量发送 1 发送文本信息 '''加密发送文本邮件''' def sendEmail(from_addr,password,to_addr,smtp_server): try: ...

  7. python3用BeautifulSoup用limit来获取指定数量的a标签

    # -*- coding:utf-8 -*- #python 2.7 #XiaoDeng #http://tieba.baidu.com/p/2460150866 #标签操作 from bs4 imp ...

  8. 前后分离模型之封装 Api 调用

    Ajax 和异步处理 调用 API 访问数据采用的 Ajax 方式,这是一个异步过程,异步过程最基本的处理方式是事件或回调,其实这两种处理方式实现原理差不多,都需要在调用异步过程的时候传入一个在异步过 ...

  9. [转]MyEclipse内存不足问题

    1.修改eclipse.ini 在Myeclipse安装目录下G:\MyEclipse8.5\Genuitec\MyEclipse 8.5有一个myeclipse.ini配置文件,设置如下: -vma ...

  10. Mydumper介绍

    Mydumper是一个针对MySQL和Drizzle的高性能多线程备份和恢复工具.开发人员主要来自MySQL,Facebook,SkySQL公司.目前已经在一些线上使用了Mydumper. 一.Myd ...