python
文章平均质量分 69
浅汐王
这个作者很懒,什么都没留下…
展开
-
多线程爬虫爬取电影天堂资源
先来简单介绍一下,网络爬虫的基本实现原理吧。一个爬虫首先要给它一个起点,所以需要精心选取一些URL作为起点,然后我们的爬虫从这些起点出发,抓取并解析所抓取到的页面,将所需要的信息提取出来,同时获得的新的URL插入到队列中作为下一次爬取的起点。这样不断地循环,一直到获得你想得到的所有的信息爬虫的任务就算结束了。我们通过一张图片来看一下。 好的 下面进入正题,来讲解下原创 2017-10-08 14:48:25 · 22437 阅读 · 0 评论 -
实现并行抓取整站40万条房价数据(可更换抓取城市)
这次的爬虫是关于房价信息的抓取,目的在于练习10万以上的数据处理及整站式抓取。数据量的提升最直观的感觉便是对函数逻辑要求的提高,针对Python的特性,谨慎的选择数据结构。以往小数据量的抓取,即使函数逻辑部分重复,I/O请求频率密集,循环套嵌过深,也不过是1~2s的差别,而随着数据规模的提高,这1~2s的差别就有可能扩展成为1~2h。因此对于要抓取数据量较多的网站,可以从两原创 2017-10-08 14:49:13 · 1419 阅读 · 0 评论 -
爬虫之模拟登录总结
有些网站需要登录后才能爬取所需要的信息,此时可以设计爬虫进行模拟登录,原理是利用浏览器cookie。一、浏览器访问服务器的过程: (1)浏览器(客户端)向Web服务器发出一个HTTP请求(Http request); (2)Web服务器收到请求,发回响应信息(Http Response); (3)浏览器解析内容呈现给用户。二、利用Fiddler查看浏览器行为信原创 2017-10-08 14:50:26 · 3990 阅读 · 0 评论 -
使用Python收集获取Linux系统主机信息
使用 python 代码收集主机的系统信息,主要:主机名称、IP、系统版本、服务器厂商、型号、序列号、CPU信息、内存等系统信息。#!/usr/bin/env python#encoding: utf-8'''收集主机的信息:主机名称、IP、系统版本、服务器厂商、型号、序列号、CPU信息、内存信息'''from subprocessimpor原创 2017-10-08 14:52:28 · 2089 阅读 · 3 评论 -
Requests+正则表达式爬取猫眼电影top100
#!/usr/bin/python#coding=utf-8#import requestsfrom requests.exceptions import RequestExceptionimport reimport jsonfrom multiprocessing import Pooldef get_one_page(url):try:resp原创 2017-10-08 14:54:51 · 1203 阅读 · 0 评论 -
爬取智联招聘的招聘信息
#!/usr/bin/python#encoding:utf-8import requestsfrom bs4 import BeautifulSoupimport codecsimport xlwtfrom xlutils.copy import copyfrom xlrd import open_workbookimport osclass Spid原创 2017-10-08 14:57:34 · 784 阅读 · 0 评论 -
爬取图片
-----爬取百度贴吧的图片:# coding=utf-8import urllibimport redef getHtml(url):page = urllib.urlopen(url)html = page.read()return htmldef getImg(html):reg = r'src="(.+?\.jpg)" pic_ext原创 2017-10-08 14:59:41 · 307 阅读 · 0 评论 -
Scrapy 爬取伯乐在线
项目介绍使用Scrapy框架进行爬取伯乐在线的所有技术文章所用知识点Scrapy项目的创建Scrapy框架Shell命令的使用Scrapy自带的图片下载管道Scrapy自定义图片下载管道(继承自带的管道)Scrapy框架ItemLoader的使用Scrapy自定义ItemLoaderScrapy中同步将Item保存入Mysq数据库Scrapy中异原创 2017-10-08 14:47:47 · 631 阅读 · 0 评论 -
pip安装使用详解
pip类似RedHat里面的yum,安装Python包非常方便。本节详细介绍pip的安装、以及使用方法。1、pip下载安装1.1 pip下载1# wget "https://pypi.python.org/packages/source/p/pip/pip-1.5.4.tar.gz#md5=834b2904f92d46aaa333267fb1c922bb" --no-c原创 2017-11-07 08:58:21 · 202 阅读 · 0 评论 -
scrapy报错no module named win32api 的解决方法
问题现象:执行scrapy程序时保持no module named win32api版本:window版本:window10 64位python2.7解决方法:http://sourceforge.net/projects/pywin32/files/ 到该网站下载对应的版本进行安装例如本次出现问题是在win64位python2.7,即下载pywin32-220.win-amd64-py2.7.e...原创 2018-02-24 21:14:12 · 388 阅读 · 0 评论 -
ProxyHandler处理器(代理设置二)
HTTPPasswordMgrWithDefaultRealm()HTTPPasswordMgrWithDefaultRealm()类将创建一个密码管理对象,用来保存 HTTP 请求相关的用户名和密码,主要应用两个场景:验证代理授权的用户名和密码 (ProxyBasicAuthHandler())验证Web客户端的的用户名和密码 (HTTPBasicAuthHandler())Pr原创 2018-01-16 14:13:03 · 1785 阅读 · 0 评论 -
ProxyHandler处理器(代理设置一)
使用代理IP,这是爬虫/反爬虫的第二大招,通常也是最好用的。很多网站会检测某一段时间某个IP的访问次数(通过流量统计,系统日志等),如果访问次数多的不像正常人,它会禁止这个IP的访问。所以我们可以设置一些代理服务器,每隔一段时间换一个代理,就算IP被禁止,依然可以换个IP继续爬取。urllib2中通过ProxyHandler来设置使用代理服务器,下面代码说明如何使用自定义opener来原创 2018-01-16 14:11:16 · 79168 阅读 · 0 评论 -
Handler处理器 和 自定义Opener
opener是 urllib2.OpenerDirector 的实例,我们之前一直都在使用的urlopen,它是一个特殊的opener(也就是模块帮我们构建好的)。但是基本的urlopen()方法不支持代理、cookie等其他的HTTP/HTTPS高级功能。所以要支持这些功能:使用相关的 Handler处理器 来创建特定功能的处理器对象;然后通过 urllib2.build_ope原创 2018-01-16 14:10:18 · 263 阅读 · 0 评论 -
HTTP代理神器Fiddler
Fiddler是一款强大Web调试工具,它能记录所有客户端和服务器的HTTP请求。 Fiddler启动的时候,默认IE的代理设为了127.0.0.1:8888,而其他浏览器是需要手动设置。工作原理Fiddler 是以代理web服务器的形式工作的,它使用代理地址:127.0.0.1,端口:8888Fiddler抓取HTTPS设置启动Fiddler,打开菜单栏中的 Tool原创 2018-01-16 14:09:21 · 1623 阅读 · 0 评论 -
HTTP和HTTPS
HTTP协议(HyperText Transfer Protocol,超文本传输协议):是一种发布和接收 HTML页面的方法。HTTPS(Hypertext Transfer Protocol over Secure Socket Layer)简单讲是HTTP的安全版,在HTTP下加入SSL层。SSL(Secure Sockets Layer 安全套接层)主要用于Web的安全传输协议,在传原创 2018-01-16 14:08:24 · 1504 阅读 · 0 评论 -
通用爬虫和聚焦爬虫
根据使用场景,网络爬虫可分为 通用爬虫 和 聚焦爬虫 两种.通用爬虫通用网络爬虫 是 捜索引擎抓取系统(Baidu、Google、Yahoo等)的重要组成部分。主要目的是将互联网上的网页下载到本地,形成一个互联网内容的镜像备份。通用搜索引擎(Search Engine)工作原理通用网络爬虫 从互联网中搜集网页,采集信息,这些网页信息用于为搜索引擎建立索引从而提供支持,它决定着整个引擎系统的内容是否原创 2018-01-16 14:06:37 · 1074 阅读 · 0 评论 -
Selenium 爬取淘宝数据
1、项目流程2、中心调度#中心调度defmain():try:total = search()total =int(re.compile('.*?(\d+).*?').search(total).group(1))foriinrange(2,total+1):next_page(i)exceptExceptio原创 2017-10-08 14:47:06 · 829 阅读 · 0 评论 -
爬取豆瓣所有电影
#!/usr/bin/python#encoding:utf-8#!/usr/bin/env python# coding:utf8''' 一次性爬取豆瓣所有电影的概要信息'''import urllib2import urllibimport jsonimport timeISOTIMEFORMAT='%Y-%m-%d %X原创 2017-10-08 14:53:04 · 2217 阅读 · 0 评论 -
电影票房的实时统计
# -*- coding: utf-8 -*-import urllib2import reimport osBOR_amount=0.0url='http://58921.com/'req = urllib2.Request(url, headers={'User-Agent' : "Magic Browser"})webpage= urllib2.u原创 2017-10-08 15:00:14 · 9363 阅读 · 0 评论 -
深拷贝deepcopy与浅拷贝copy
Python中的对象之间赋值时是按引用传递的,如果需要拷贝对象,需要使用标准库中的copy模块。copy.copy 浅拷贝 只拷贝父对象,不会拷贝对象的内部的子对象。copy.deepcopy 深拷贝 拷贝对象及其子对象 一个很好的例子:Python代码import copya = [1, 2, 3, 4, ['a', 'b']] #原始对象b = a #赋值,原创 2017-10-08 14:36:49 · 252 阅读 · 0 评论 -
pandas 基础
pandas 是基于 Numpy 构建的含有更高级数据结构和工具的数据分析包 类似于 Numpy 的核心是 ndarray,pandas 也是围绕着 Series 和 DataFrame 两个核心数据结构展开的 。Series 和 DataFrame 分别对应于一维的序列和二维的表结构。pandas 约定俗成的导入方法如下:from pandas import Series,DataFra原创 2017-10-08 14:36:04 · 493 阅读 · 0 评论 -
enumerate用法总结
enumerate()是python的内置函数 enumerate在字典上是枚举、列举的意思 对于一个可迭代的(iterable)/可遍历的对象(如列表、字符串),enumerate将其组成一个索引序列,利用它可以同时获得索引和值 enumerate多用于在for循环中得到计数 例如对于一个seq,得到: (0, seq[0]), (1, seq[1]), (2, seq[2])enume原创 2017-10-08 14:35:21 · 4334 阅读 · 0 评论 -
range函数与numpy arange函数
1.range()返回的是range object,而np.arange()返回的是numpy.ndarray() range尽可用于迭代,而np.arange作用远不止于此,它是一个序列,可被当做向量使用。2.range()不支持步长为小数,np.arange()支持步长为小数3.两者都可用于迭代4.两者都有三个参数,以第一个参数为起点,第三个参数为步原创 2017-10-08 14:34:55 · 6399 阅读 · 1 评论 -
正则表达式 re 模块
简介正则表达式(regular expression)是可以匹配文本片段的模式。最简单的正则表达式就是普通字符串,可以匹配其自身。比如,正则表达式 ‘hello’ 可以匹配字符串 ‘hello’。要注意的是,正则表达式并不是一个程序,而是用于处理字符串的一种模式,如果你想用它来处理字符串,就必须使用支持正则表达式的工具,比如 Linux 中的 awk, sed, grep,原创 2017-10-08 14:34:32 · 441 阅读 · 0 评论 -
Requests库学习笔记
1、概览1.1、实例引入# 引入Requests库import requests# 发起GET请求response = requests.get('https://www.baidu.com/')# 查看响应类型 requests.models.Responseprint(type(response))# 输出状态码print(response.st原创 2017-10-07 16:19:39 · 4994 阅读 · 0 评论 -
BeautifulSoup 库学习笔记
1、常用解析库2、BeautifulSoup的基本使用frombs4importBeautifulSouphtml ="""The Dormouse's storyThe Dormouse's storyOnce upon a time there were three little sisters; and their原创 2017-10-07 16:18:25 · 355 阅读 · 0 评论 -
PyQuery 库学习笔记
1、初始化1.1、字符串初始化frompyqueryimportPyQueryaspyhtml ='''first itemsecond item<span class="bold">third itemfourth itemfifth item'''doc = py(html)print(原创 2017-10-07 16:17:32 · 230 阅读 · 0 评论 -
python合并多个csv文件
#!/usr/bin/python#encoding:utf-8#合并多个csv文件到一个csv文件import pandas as pdlcvs=[]lcvs.append(pd.read_csv('aaa.csv',delimiter=':',names=['name','type']))lcvs.append(pd.read_csv('bbb.csv',del原创 2017-10-08 14:37:32 · 4674 阅读 · 1 评论 -
电影样题的数据清洗
# -*- coding: utf-8 -*-#coding:utf-8import numpy as npimport pandas as pdimport stringdf20105 = pd.read_csv('fbr_d_n_b.csv', delimiter = ',' , names = ['date','film','BoxOfficeReturn原创 2017-10-08 14:38:17 · 797 阅读 · 0 评论 -
根据电影数据画出折线图
#coding:utf-8import numpy as npimport pandas as pdimport matplotlib as pltimport stringfrom pylab import *mpl.rcParams['font.sans-serif'] = ['SimHei'] #指定默认字体mpl.rcParams['axes.uni原创 2017-10-08 14:40:17 · 1009 阅读 · 0 评论 -
今日头条街拍爬取
本次练习使用到的知识点有* Requests 库的使用* BeautifulShop 库的使用* 正则表达式的使用* pymongo 库的使用1、项目流程分析2、中心调度#中心调度defmain(offset):#获取列表页index_data = get_page_index(offset,KEYWORDS)原创 2017-10-08 14:46:26 · 479 阅读 · 0 评论 -
获取动态加载ajax的数据
get_infoimport reimport urllib2import jsonimport pandas as pdclass Qyinyue(object): def __init__(self, url): self.url = url global datas datas = [] self.sta原创 2017-10-08 14:58:51 · 339 阅读 · 0 评论 -
抓取北京影讯的电影信息
# -*- coding: utf-8 -*-import urllib2import osimport redef mean_audience_score(FilmId):arv = 0.0sc_url = "http://movie.mtime.com/" + FilmId + "/"sc_req = urllib2.Request(sc_url,原创 2017-10-08 15:01:06 · 759 阅读 · 0 评论 -
猫眼电影TOP100爬取
本次练习使用到的知识点Requsts 库的基本使用正则表达式的使用Python3写入CSV1、项目流程分析2、中心调度# 主调度程序defmain():# 起始URLstart_url ='http://maoyan.com/board/4'for i in range(0,100,10):# 获取响应文本内容原创 2017-10-08 14:45:29 · 803 阅读 · 0 评论 -
爬取51job的职位信息
#!/usr/bin/python#encoding:utf-8#网站---源代码---python信息---匹配findall---写入文件import urllibimport reimport sysreload(sys)sys.setdefaultencoding('utf-8')#输出的内容是utf-8格式#打开源码,获取网站i=0;d原创 2017-10-08 15:01:47 · 1239 阅读 · 0 评论 -
改进后的多线程爬虫
本文在没使用框架的情况下,写的简单的多线程例子,合适初学者package#coding:utf-8import re ###正则表达式import threading ###多线程import urllib2 ###urllib2import time ###时间用来计算原创 2017-10-08 14:43:32 · 228 阅读 · 0 评论 -
获取百度贴吧信息
#!/usr/bin/python#coding=utf-8from urllib import requestfrom urllib import errorfrom http import clientimport re#处理页面标签类class Tool:#去除img标签,7位长空格removeImg = re.compile('| {7}原创 2017-10-08 14:55:59 · 409 阅读 · 0 评论 -
dataframe和各大图形结合模板
一、packageimport numpy as npimport matplotlib.pylot as pltimport pandas as pd二、设置一个dataframedf = pd.DataFrame(np.random.randn(4, 3), columns=['a', 'b', 'c'])df=df.set_index(pd.Index(['aa','b原创 2017-10-08 14:40:50 · 648 阅读 · 0 评论 -
Selenium 库学习笔记
1、基本使用fromseleniumimportwebdriverfromselenium.webdriver.common.byimportByfromselenium.webdriver.supportimportexpected_conditionsasECfromselenium.webdriver.support.wait原创 2017-10-07 16:15:43 · 547 阅读 · 0 评论