--------------python爬虫练习
文章平均质量分 55
有一种宿命叫无能为力
即便梦想依旧遥不可及,我依然矢志不渝的前进
原博客链接:http://blog.csdn.net/wuxiushu
展开
-
scrapy执行过程中出现的错误分析
本人使用:python2.7.12 + Scrapy1.0.3 今天在搞scrapy的过程中,出现了下面这种坑爹的错误,找了好久没找到,中间换了好几个Scrapy的版本,还是出错,,发现有个大牛说可能是twisted的错误,试了下,还真是,用Anaconda一键安装Scrapy的时候预装的twisted是17.0.1,用conda install scrapy 重新安装一次就可以了,如原创 2017-03-01 13:55:49 · 1209 阅读 · 0 评论 -
scrapy常用命令
# -- help 查看帮助信息scrapy -- help# version 查看版本信息scrapy version# version -v 更加全面的版本信息scrapy version -v# startproject 创建工程scrapy startproject tutorial(工程名称)cd tutorial# 以下方法在 tutorial 目录下进行原创 2017-03-01 21:30:15 · 1605 阅读 · 0 评论 -
使用scrapy的mail模块发送邮件
相应官网链接:链接由官网提供的方法可以发现有两种形式可以发送邮件,其一:配置settings,使用mailer = MailSender.from_settings(settings)的方法读取settings的配置,不过本人这样写好以后一直出现这种错误TypeError: 'module' object has no attribute '__getitem__'没有找到解决原创 2017-03-08 11:06:18 · 7641 阅读 · 10 评论 -
使用python内置smtplib模块发送邮件
注意授权码的获取,登录邮箱的密码必须是授权码才可以。#coding: utf-8import smtplibimport email.mime.multipartimport email.mime.textmsg = email.mime.multipart.MIMEMultipart()''''' 最后终于还是找到解决办法了:邮件主题为‘test’的时候就会出现错误,换成其他原创 2017-03-08 11:23:23 · 966 阅读 · 0 评论 -
requests使用代理ip的方法
import requestsproxies = { "http" : "http://111.155.124.78:8123" # 代理ip}headers = { "User_Agent" : "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1207.1 S原创 2017-03-04 17:17:21 · 19122 阅读 · 0 评论 -
scrapy使用代理ip的时候下载器中间件的配置文件设置
DOWNLOADER_MIDDLEWARES = {'xici(项目名称).middlewares(下载器中间件的文件名称).ProxyMiddleware(类名)': 543(优先级),'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware': None,}原创 2017-03-04 23:13:29 · 3261 阅读 · 0 评论 -
scrapyd项目部署
看了好多scrapyd的部署博客,发现基本上都是在麦子学院(链接)里面复制粘贴出来的,不过我用那个测试的时候出现了一些错误,不知道之前的博主是否在测试中是否也出现了类似的错误。 需要的三个工具,上面已经说的很清楚了 scrapyd,scrapyd-client,bin-curl怎么安装麦子学院里面都有提到。 安装完毕并启动scrapyd以后,当再次在命令行输入下面命令的时候,出现了原创 2017-03-06 23:36:40 · 2548 阅读 · 0 评论 -
scrapy中ROBOTSTXT_OBEY = True的相关说明
在scrapy中创建项目以后,在settings文件中有这样的一条默认开启的语句:# Obey robots.txt rulesROBOTSTXT_OBEY = True观察代码可以发现,默认为True,就是要遵守robots.txt 的规则,那么 robots.txt 是个什么东西呢?通俗来说, robots.txt 是遵循 Robot协议 的一个文件,它保存在网站的服务器中,原创 2017-03-05 22:39:54 · 14416 阅读 · 8 评论 -
scrapy 把cookie并转化为字典的形式
在用scrapy设置cookie的时候,需要从网页上对应的页面把cookie字段复制下来,并转化为字典的形式,下面代码是对cookie的转化过程# -*- coding: utf-8 -*-class transCookie(object): def __init__(self, cookie): self.cookie = cookie def stri原创 2017-03-10 11:41:06 · 1800 阅读 · 0 评论 -
Python中的GIL
什么是GILPython官方解释器(即,CPython解释器)在内部并不是线程安全的,因此它有一个全局解释器锁(GIL),它使得在任何时刻都只有一个线程在执行Python字节码。这也是使得标准版本的Python并不能实现真正的多线程并发的直接原因。简单来说就是,一个Python进程永远不能在同一时刻使用多个CPU核心。喜欢Python读者君可以加我们Python学习交流 3转载 2017-03-11 21:13:01 · 716 阅读 · 0 评论 -
使用re模块爬取网页图片并下载
#!/usr/bin/python#coding: utf-8# 爬取imooc网站python页面的所有的图片import urllibimport rehtml = urllib.urlopen("http://www.imooc.com/course/list?c=python").read()# 查看爬取的网页的源码# print htmldef getImg(im原创 2016-11-21 14:32:29 · 815 阅读 · 0 评论 -
使用re模块获取糗事百科上的笑话
获取的只有这个标签下面的内容,不包含图片格式,因为图片格式在编译器上面不显示代码中为了消除空格还有换行的影响,直接把空格还有换行转化为啥都没有(空字符),注意网页的防爬虫,要记得伪装代码#!/usr/bin/python#coding: utf-8from bs4 import BeautifulSoupimport re, sys, urllib, urllib2原创 2016-11-22 21:15:29 · 444 阅读 · 0 评论 -
python虚拟环境中安装Scrapy
为了保证python的干净,今天尝试在虚拟机中安装Scrapy,BUG多多,终于安装成功了,分享出来,本机:python2.7.12win7 64位python安装好以后使用pip安装虚拟环境,进入安装的python目录下的Scripts下,关于虚拟环境的搭建以及使用,点击这里,进入虚拟环境以后,安装Scrapy的依赖包,由于python中没有默认安装lxml和pyOpen原创 2016-11-05 00:51:51 · 2313 阅读 · 0 评论 -
使用BeautifulSoup模块获取糗事百科上的笑话
更多解释在打开链接,这里使用BeautifulSoup爬取#!/usr/bin/python#coding: utf-8from bs4 import BeautifulSoupimport re, sys, urllib, urllib2reload(sys)sys.setdefaultencoding( "utf-8" )while True: url = "htt原创 2016-11-22 22:46:54 · 589 阅读 · 0 评论 -
python爬取动态页面
今天学习了用re爬取动态页面的方式,发现爬取动态页面的时候需要注意的一些东西,总结下来,以免以后碰见了再忘记。 主要是注意以下的几点吧。 对于所有的页面都用搞成浏览器的形式访问,这个之前的代码中也提到过。 下面的代码是爬取百度美食动态页面的对应页面的菜名。对于动态网页,要找到其对应爬取的url(最好使用Google浏览器),找到开发者工具,然后点击对应的美食的页面,点原创 2016-11-29 21:08:43 · 5516 阅读 · 0 评论 -
python操作json对象
#!/usr/bin/python#coding: utf-8import json# 字典对象st = { "programmers": [{ "firstName": "Brett", "lastName": "McLaughlin", "email": "aaaa" }, { "firstName":原创 2016-11-29 21:20:29 · 926 阅读 · 0 评论 -
python爬取防爬虫网站的数据
对于反爬虫的网站,比如天眼查,使用phantomJS和selenium这两个可以很轻松的爬取出来举例来说,在天眼查中搜索百度,然后查看网页源代码,在源代码中查找的时候并不能查找到百度词条,因为它是防爬虫的。输入的如果是中文的字符串,要注意对中文字符串进行解码,转化成浏览器可以识别的网址形式,代码如下:#!/usr/bin/python#coding: utf-原创 2016-11-29 22:53:49 · 4967 阅读 · 0 评论 -
urllib和urllib2的区别
自从认识了这两个,一直以为urllib2是urllib的增强版,但是今天发现urllib2中没有urlretrieve的方法,才发现原来并不是简单的增强,可以说是升级,但是urllib中有urllib2中没有的方法,下面是摘录的这两者的区别。1.在python中,urllib和urllib2不可相互替代的。 2.整体来说,urllib2是urllib的增强,但是urllib中有urllib原创 2016-11-21 16:00:42 · 440 阅读 · 0 评论 -
TypeError: expected string or buffer的解决方法
今天在写爬虫脚本的时候,碰见了TypeError: expected string or buffer的错误,整理下来,以防忘记。这个主要是要访问的类型错误,比如下面的代码f = open('a url')new = f.read()derp = re.findall(r'(.*?)', new)line = derpdef striphtml2(data): p =原创 2016-11-22 13:51:35 · 28155 阅读 · 0 评论 -
python实现爬取豆瓣编程书籍的信息
在开始的时候,遇见这种错误:urllib2.HTTPError: HTTP Error 403: Forbidden, 百度了下,发现是源网页放爬虫,要把代码伪装成浏览器访问才可以。用于伪装的代码:#伪装浏览器头headers = {'User-Agent':'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gec原创 2016-11-21 18:43:25 · 624 阅读 · 0 评论 -
用BeautifulSoup做单词翻译的脚本
单词翻译以后的内容在网页中存在的位置如下:代码要获取的就是画线标注出的内容注意:开始的时候代码抛出了一个异常,这里有解释:打开链接#!/usr/bin/env python#-*- coding:utf-8 -*-import urllibimport sysimport refrom bs4 import BeautifulSoupUR原创 2016-11-22 14:20:57 · 576 阅读 · 0 评论 -
python多线程中daemon的属性方法
我们看官方介绍是这样的:意思就是说:这个属性为一个布尔值,表示是否为一个守护进程,且这个属性设置必须在线程的start方法开始之前调用。它的值继承自主线程,主线程的daemon为False且所有从主线程创建的线程都是daemon = False 。下面一句说明了,python主程序只有在没有非守护线程的时候才会退出。我在用多线程的时候和看这些介绍的时候2个疑惑:1.有的多线转载 2017-03-12 00:40:07 · 2086 阅读 · 0 评论