- 博客(32)
- 收藏
- 关注
原创 使用requests和re库对淘宝商品信息进行定向爬取
#coding=utf-8import requestsimport redef getHtmlText(url): try: r= requests.get(url, timeout = 30) r.raise_for_status() r.encoding = r.apparent_encoding return
2017-05-28 21:40:14 840
原创 re库主要功能函数
#coding=utf-8import re#re.search(pattern, string, flags)匹配正则表达式的第一个位置,返回match对象match = re.search(r'[1-9]\d{5}', 'BIT 100081')if match: print match.group(0)#re.match(pattern, string, flags
2017-05-28 15:56:11 1185
原创 把信息保存在html文件中的代码
# -*- coding: utf-8 -*-import scrapyclass CrawlSpider(scrapy.Spider): name = 'crawl' allowed_domains = ['www.zuihaodaxue.cn'] start_urls = ['http://www.zuihaodaxue.cn/zuihaodaxuepaimin
2017-05-27 20:35:18 1053
原创 定向网页爬取
#coding=utf-8import requestsfrom bs4 import BeautifulSoupimport bs4import sysreload(sys)sys.setdefaultencoding( "utf-8" )def getHTMLText(url): try: r = requests.get(url, timeout=3
2017-05-27 09:59:16 308
原创 Ip地址查询
#-*- coding:UTF-8 -*-import requestsdef IpSeek(url): try: r = requests.get(url + '202.204.80.112') print r.raise_for_status() r.encoding = r.apparent_encoding pr
2017-05-25 21:34:55 370
原创 网络图片的爬取与存储
#-*- coding:UTF-8 -*-import requestsimport osdef getImage(url): root = 'F:/image/' path = root + url.split('/')[-1] try: if not os.path.exists(root): os.mkdir(root)
2017-05-25 21:21:01 308
原创 爬取网页的通用代码框架
#-*- coding:UTF-8 -*-import requestsdef getHTMLText(url): try: r = requests.get(url, timeout = 30) r.raise_for_status() #如果状态不是200,引发HTTPError异常 r.encoding = r.apparent_
2017-05-25 16:15:13 630
原创 Selenium
from selenium import webdriverdef main(): driver = webdriver.Firefox() driver.get('http://example.webscraping.com/search') driver.find_element_by_id('search_term').send_keys('.') dr
2017-05-25 14:58:35 213
原创 渲染类
# -*- coding: utf-8 -*-import reimport csvimport timetry: from PySide.QtGui import QApplication from PySide.QtCore import QUrl, QEventLoop, QTimer from PySide.QtWebKit import QWebVie
2017-05-25 11:17:38 218
原创 对动态网页进行逆向工程
通过搜索字母表的每个字母,然后遍历json响应的结果页面,来抓取所有国家信息。其产生结果将会存储在表格当中。import stringfrom downloader import Downloaderimport jsonD = Downloader()template_url = 'http://example.webscraping.com/ajax/search.json?p
2017-05-23 16:22:16 2311
原创 多进程爬虫
1. mongoqueue.pyfrom datetime import datetime, timedeltafrom pymongo import MongoClient, errorsclass MongoQueue: OUTSTANDING, PROCESSING, COMPLETE = range(3) def __init__(self, client=
2017-05-22 19:53:36 409
原创 多线程爬虫
threaded_crawler.py# -*- coding: utf-8 -*-import timeimport threadingfrom downloader import Downloaderimport urlparseimport robotparserimport csvimport reimport lxmlSLEEP_TIME = 1DEFAULT_A
2017-05-22 16:47:48 329
原创 串行爬虫sequentipl
from link_crawler import link_crawlerfrom mongo_cache import MongoCachefrom alexa_cb import AlexaCallbackdef main(): scrape_callback = AlexaCallback() cache = MongoCache() link_crawler
2017-05-22 10:29:04 323
原创 解析Alexa列表
import csvfrom zipfile import ZipFilefrom StringIO import StringIOfrom downloader import DownloaderD = Downloader()zipped_data = D('http://s3.amazonaws.com/alexa-static/top-1m.csv.zip')urls = []
2017-05-22 09:29:59 763
原创 python socket.error: [Errno 10054] 远程主机强迫关闭了一个现有的连接。
因为对一个网站大量的使用urlopen操作,所以会被那个网站认定为攻击行为。有时就不再允许下载。导致urlopen()后,request.read()一直卡死在那里。最后会抛出errno10054.这个错误是connection reset bypeer.也就是传说的远端主机重置了此连接。原因可能是socket超时时间过长;也可能是request =urllib.request.urlopen
2017-05-22 09:15:30 20552 1
原创 MongoDB
try: import cPickle as pickleexcept ImportError: import pickleimport zlibfrom datetime import datetime, timedeltafrom pymongo import MongoClientfrom bson.binary import Binaryclass Mong
2017-05-21 22:26:04 242
原创 ServerSelectionTimeoutError: localhost:27017: [Errno 10061]
1.启动mongo.exe2:添加一配置文件添加相应目录和文件,如下图所示3:4:
2017-05-21 22:12:26 5332
原创 磁盘缓存
#-*- coding:UTF-8 -*-#原来创建对象时或者是调用类以外的方法时提示没有定义是因为这些类或方法的位置不应该放在主函数后面,而应该放在主函数前面import urlparseimport urllib2import randomimport timefrom datetime import datetime, timedeltaimport socketimport
2017-05-21 11:31:06 543
原创 正则表达式元字符说明
正则表达式元字符说明:123456789101112131415. 匹配除换行符以外的任意字符^ 匹配字符串的开始$ 匹配字符串的结束[] 用来匹配一个指定的字符类别? 对于前一个字符字符重复0次到1次* 对于前一个字符重复0次到无穷次{}
2017-05-21 10:05:46 312
原创 为链接爬虫添加缓存支持
#-*- coding:UTF-8 -*-#原来创建对象时或者是调用类以外的方法时提示没有定义是因为这些类或方法的位置不应该放在主函数后面,而应该放在主函数前面import urlparseimport urllib2import randomimport timefrom datetime import datetime, timedeltaimport socketimport
2017-05-20 18:09:24 657
原创 三种网页抓取方法
#-*- coding:UTF-8 -*-#1正则表达式import reimport urllib2url = 'http://example.webscraping.com/places/view/United-Kingdom-239'html = urllib2.urlopen(url).read()print re.findall('(.*?)', html)#正则表达式为我
2017-05-20 11:09:18 574
原创 为链接爬虫添加抓取回调
#-*- coding:UTF-8 -*-import reimport urlparseimport urllib2import timefrom datetime import datetimeimport robotparserimport Queueimport lxml.htmlimport csvdef link_crawler(seed_url, link_re
2017-05-20 10:39:42 1413 1
原创 三种网页抓取方法性能对比
import refrom bs4 import BeautifulSoupimport lxml.htmlimport urllib2import timeFIELDS = ('area', 'population', 'iso', 'country', 'capital', 'continent', 'tld', 'currency_code', 'curren
2017-05-20 08:58:25 375
原创 python01
import reimport urlparseimport urllib2import timefrom datetime import datetimeimport robotparserimport Queue#链接爬虫'''一个链接爬虫需要考虑以下几个问题:1.网页可能不存在。就要用到try和except语句,捕获异常。2.临时性的错误。比如服务器过载返回的503
2017-05-19 15:45:03 232
原创 支持向量机
一、支持向量机使用示例数据:1|21|31|41|51|60|70|80|90|100|11程序:import org.apache.spark.mllib.linalg.Vectorsimport org.apache.spark.{SparkConf, SparkContext}import org.apache.spark.mllib.cla
2017-04-30 16:18:49 186
原创 计算回归曲线的MSE
import org.apache.spark.mllib.linalg.Vectorsimport org.apache.spark.mllib.regression.{LabeledPoint, LinearRegressionWithSGD}import org.apache.spark.{SparkConf, SparkContext}object kimiYang { var
2017-04-25 09:51:41 1250
原创 MLlib线性回归实战
一、数据5,1 17,2 19,3 211,4 119,5 318,6 2二、程序import org.apache.spark.mllib.linalg.Vectorsimport org.apache.spark.mllib.regression.{LabeledPoint, LinearRegressionWithSGD}import org.apache.spark.{Spa
2017-04-24 20:55:22 525
原创 随机梯度下降算法
一、算法思想随机梯度下降算法就是不停地寻找某个节点中下降幅度最大的那个趋势进行迭代计算,直到将数据收缩到符合要求的范围之内。误差公式:关键的一点是如何调整theta值,使误差函数J最小化。J函数构成一个曲面或者曲线,我们的目的是找到该曲面的最低点:假设随机站在该曲面的一点,要以最快的速度到达最低点,我们当然会沿着坡度最大的方向往下走(梯度的反方向)用数学描述
2017-04-23 15:54:08 2670
原创 协同过滤算法+相似度度量+交替最小二乘法
一.简介协同过滤算法:是一种基于群体用户或者物品的经典推荐算法。分两种: 1.通过考察具有相同爱好的用户对相同物品的评分标准进行计算。 2.考察具有相同特质的物品从而推荐给选择了某件物品的用户。A和B是“志同道合”的基友(相似度很高),将A喜欢的物品推荐给B是合理的 在无先验知识的前提下,根据A所喜欢物品的相似性,将相似物品推荐给
2017-04-20 13:55:26 1871
原创 随机数
import org.apache.spark.{SparkConf, SparkContext}import org.apache.spark.mllib.random.RandomRDDs._object testVector { def main(args: Array[String]): Unit = { val conf = new SparkConf() .se
2017-04-20 11:08:54 208
原创 分层抽样
1.sampleByKeyimport org.apache.spark.{SparkConf, SparkContext}object testVector { def main(args: Array[String]): Unit = { val conf = new SparkConf().setMaster("local") .setAppName("test
2017-04-20 09:54:18 1973
原创 MLlib数据统计基本概念
import org.apache.spark.mllib.linalg.Vectorsimport org.apache.spark.mllib.stat.Statisticsimport org.apache.spark.{SparkConf, SparkContext}object testVector { def main(args: Array[String]): Unit =
2017-04-18 15:01:02 344
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人