1、beautifulsoap4 和 scrapy解析和下载网页的代码区别
bs可以离线解释html文件,但是获取html文件是由用户的其他行为的定义的,比如urllib或者request ;
而scrapy是一个完整的获取程序,只需要把网址贴上去,就会自动去爬。 省去很多用户需要关注的细节。
轮子和车子的区别。 前者要依附于一个程序,后者自己就能跑。
beautifulsoap4 的性能比lxml要差
 
2、mongodb非关系型数据库对网页的存储
mongodb安装注意:不用选中compass,这是界面安装,需要下载,很慢
mangodb compass单独下载安装
----------mangodb管理命令----------
net start MongoDB
net stop MongoDB
net restart MongoDB
安装服务
mongod --logpath "F:\mangodbDATA\log\mongodb.log" --logappend --dbpath "F:\mangodbDATA\database" --directoryperdb --install
卸载服务(先要停止服务)
mongod --logpath "F:\mangodbDATA\log\mongodb.log" --logappend --dbpath "F:\mangodbDATA\database" --directoryperdb --remove
重装服务
mongod --logpath "F:\mangodbDATA\log\mongodb.log" --logappend --dbpath "F:\mangodbDATA\database" --directoryperdb --reinstall
 
3、图形界面应用开发pyqt5
 
4、爬虫开发记录
爬纯文本写入TXT,反爬,最多几十章。
直接下载html文件
5秒等待,反爬,单线程下载页面很慢——6分钟60章节
req = request.Request(url, headers=headers)
resp = request.urlopen(req)
strhtml = resp.read().decode('gbk', 'ignore')
html_soup = BeautifulSoup(strhtml, 'lxml')
# index = BeautifulSoup(str(html_soup.find_all('div', class_='dir')), 'lxml')
# print(html_soup.find_all(['td', ['span']]))
body_flag = 0
spanId = '' for element in html_soup.find_all(['td', ['span']]):
if element.has_attr('id'):
signId = element['id']
if signId == 'jianjie': body_flag = 1
if signId == 'xs555' or signId == 'd999': body_flag = 0
# else:body_flag = 0 if body_flag == 1 and element.name == 'td':
if not element.a is None:
chapter_name = element.string
chapter_url = "https://www.555zw.com/book/40/40943/" + element.a.get('href')
data = {
'chapter_name': chapter_name,
'chapter_url': chapter_url
}
chapters.insert_one(data)
 
with open(filename, "a") as f:
responses = request.urlopen(item["chapter_url"])
time.sleep(5)
contents = responses.read().decode('gbk', 'ignore').encode('utf8')
f.write(contents)
#origin_soup = BeautifulSoup(contents, 'lxml')
#content = origin_soup.find(id='content')
#move = dict.fromkeys((ord(c) for c in u"\xa0\r\t"))
#txt = content.text.translate(move)
#txt = content.text

python网页爬虫开发之一的更多相关文章

  1. python网页爬虫开发之三

    1.抓取目录页后用lxml进行页面解析,获取抓取列表 python3.6 urlparse模块变为urllib.parse 2.Python中有一个专门生成各类假数据的库:Faker 3.python ...

  2. python网页爬虫开发之六-Selenium使用

    chromedriver禁用图片,禁用js,切换UA selenium 模拟chrome浏览器,此时就是一个真实的浏览器,一个浏览器该加载的该渲染的它都加载都渲染,所以爬取网页的速度很慢.如果可以不加 ...

  3. python网页爬虫开发之七-多线程爬虫示例01

    from urllib.request import quote import urllib.request from bs4 import BeautifulSoup import re impor ...

  4. python网页爬虫开发之五-反爬

    1.头信息检查是否频繁相同 随机产生一个headers, #user_agent 集合 user_agent_list = [  'Mozilla/5.0 (Windows NT 6.1; WOW64 ...

  5. python网页爬虫开发之四-串行爬虫代码示例

    实现功能:代理.限速.深度.反爬 import re import queue import urllib.parse import urllib.robotparser import time fr ...

  6. Python 网页爬虫 & 文本处理 & 科学计算 & 机器学习 & 数据挖掘兵器谱(转)

    原文:http://www.52nlp.cn/python-网页爬虫-文本处理-科学计算-机器学习-数据挖掘 曾经因为NLTK的缘故开始学习Python,之后渐渐成为我工作中的第一辅助脚本语言,虽然开 ...

  7. 【Python】Python 网页爬虫 & 文本处理 & 科学计算 & 机器学习 & 数据挖掘兵器谱

    本文转载自:https://www.cnblogs.com/colipso/p/4284510.html 好文 mark http://www.52nlp.cn/python-%E7%BD%91%E9 ...

  8. Python分布式爬虫开发搜索引擎 Scrapy实战视频教程

    点击了解更多Python课程>>> Python分布式爬虫开发搜索引擎 Scrapy实战视频教程 课程目录 |--第01集 教程推介 98.23MB |--第02集 windows下 ...

  9. Python网页爬虫(一)

    很多时候我们想要获得网站的数据,但是网站并没有提供相应的API调用,这时候应该怎么办呢?还有的时候我们需要模拟人的一些行为,例如点击网页上的按钮等,又有什么好的解决方法吗?这些正是python和网页爬 ...

随机推荐

  1. deno学习三 官方提供的方便deno 安装方式

    早起deno 使用了golang 开发,同时需要protobuf 进行数据的序列化以及反序列化处理 当前的deno 已经使用rust 进行了开发,同时官方提供的安装方式也很方便了,不需要 那么复杂的编 ...

  2. Eclipse之父、《设计模式》作者、Junit作者之Erich Gamma

    Erich Gamma拥有多重权威身份.他是Jazz项目的主要领导人:是Eclipse的项目管理委员会成员,被业界称为“Eclipse之父”: 是经典书<设计模式>的作者四人帮之一,199 ...

  3. [转]ArrayList的实现原理

    1. ArrayList概述: ArrayList是List接口的可变数组的实现.实现了所有可选列表操作,并允许包括 null 在内的所有元素.除了实现 List 接口外,此类还提供一些方法来操作内部 ...

  4. KNN手写实践:Python基于数据集整体计算以及排序

    1. 距离计算,不要通过遍历每个样本来计算和指定样本距离,而是通过对于指定样本进行广播(复制)成为一个shape和全局一致后,再进行整体计算,这里的广播 / 复制采用的是tile函数来实现的: 2. ...

  5. DelphiXE7 Datasnap TDSClientCallbackChannelManager内部实现初探

    回调的原理很简单,开一个线程(为了区别其它线程,先将此线程命名为“通道线程”),注册一个“轻量”的回调,然后此线程(通道线程)等服务器返回信息(回调),服务器有信息返回时,通道线程再开个线程执行用户注 ...

  6. 大数据框架hadoop服务角色介绍

    翻了一下最近一段时间写的分享,DKHadoop发行版本下载.安装.运行环境部署等相关内容几乎都已经写了一遍了.虽然有的地方可能写的不是很详细,个人理解水平有限还请见谅吧!我记得在写DKHadoop运行 ...

  7. RedHat6.5安装单机flume1.6

    版本号: RedHat6.5   JDK1.8   apache-flume-1.6.0 1.apache-flume-1.6.0-bin.tar.gz 下载 官网下载地址:http://archiv ...

  8. php限制文件下载速度的代码

    有时候你会出于某种目的而要求把下载文件的速度放慢一些,例如你想实现文件下载进度条功能.限制下载速度最大的好处是节省带宽,避免瞬时流量过大而造成网络堵塞.本文将和你分享如何通过php代码来实现限制文件的 ...

  9. Excel技巧--时尚的圆环比例图

    如上图,制作方法如下: 1.创建圆环图:选择表格,点击“插入”-->点击 圆环图. 2.删除图中的标题和标记,将圆环内径缩至最小: 3.复制表格的数据,重复两次粘贴到图表中: 4.依次选择内两环 ...

  10. InfluxDB中文文档

    来源:https://github.com/jasper-zhang/influxdb-document-cn InfluxDB中文文档 InfluxDB是一个用于存储和分析时间序列数据的开源数据库. ...