python爬虫程序笔记
这是python爬虫笔记的专栏,用于复习之用。
韩韩的博客
在读学生。座右铭:愿中国青年都摆脱冷气,只是向上走,不必听自暴自弃者流的话。能做事的做事,能发声的发声。有一分热,发一分光。就令萤火一般,也可以在黑暗里发一点光,不必等候炬火。愿君安。
展开
-
scrapy框架爬取知乎信息实例详解(详细)
爬取知乎的关注信息作为我们scrapy框架的详解例子,爬取的知乎大v是轮子哥,然后将爬取的信息存储进mongo数据库。我将所有解释都放进例子里。虽然每一句代码都有解释,但是最好还是有爬虫的基础。 整体思路: 1.选定一位有较多关注数的知乎达人作为我们的爬取对象 2.通过知乎接口获得获得该粉丝的关注列表和粉丝列表 3.通过递归的方法实现对列表中每一个用户的爬取,爬取他们的粉丝列表和关注列表。...原创 2018-08-05 08:43:20 · 1357 阅读 · 0 评论 -
scrapy基本用法详解(入门)
我们要抓取的网站是:quotes.toscrape.com 流程框架: 1.抓取第一页 2.获取内容和下一页的链接 3保存爬取结果、 4翻页爬取,请求下一页信息,分析内容并请求再下一页的链接在命令行下如下操作: 创建项目:scrapy startproject quote 创建spider文件:scrapy genspider quotes quotes.toscrtapy.co...原创 2018-08-05 11:07:26 · 2044 阅读 · 0 评论 -
scrapy中spider的用法
spider中定义了如何爬取某些网站。 中文文档主要内容 1.spider中起始的request是通过调用start_request()来采取的,start_request()读取start_url中的url,并以parse为回调函数生成reuqest 2在回调函数内即parse中分析返回的网页内容,返回Item或者Request或者一个包括二者的可迭代容器。返回的request对象之后会经...原创 2018-08-07 16:40:31 · 1595 阅读 · 0 评论 -
scrapy框架利用start_requests方法改写post请求
scrapy默认发起的是get请求,如果你想发起post请求该怎么办呢? 解决办法就是利用start_request方法,对该方法进行改写,进行post请求。 我们以post请求http://httpbin.org为例子讲解。 我们可能本能的以为改掉start_urls就可以了 例如:class HttpbinSpider(scrapy.Spider): name = 'htt...原创 2018-08-03 14:48:59 · 14980 阅读 · 0 评论 -
scrapy简单知识点分析
# -*- coding: utf-8 -*-# spider类定义如何爬取某些网站# 实际上是默认调用request方法import scrapyfrom quotetutorial.items import QuoteItemclass QuotesSpider(scrapy.Spider): name = 'quotes' # # name:必须存在,用来标识sp...原创 2018-08-03 16:17:45 · 293 阅读 · 0 评论 -
mongodb数据库环境配置
1.下载mongodb https://www.mongodb.com/download-center#community 2.下载安装完成后,打开安装的文件夹找到data的文件夹,然后打开data文件夹在data文件夹中新建一个db文件夹。用来存放数据和配置信息 3然后返回上一层文件夹,进入bin文件夹,按住shift,然后右键点击在此处打开powershell窗口。 4 输入命令:./...原创 2018-08-04 16:43:58 · 2669 阅读 · 0 评论 -
scrapy简单实战
本程序有部分错误,请见谅。但其中所涉及的知识点尤为重要。 本爬虫爬取的是http://quotes.toscrape.com/‘的文本内容。具体请参考代码注释 quotes.pyimport scrapyfrom items import QuoteItemclass QuotesSpider(scrapy.Spider): name = 'quotes' allow...原创 2018-08-02 21:48:33 · 382 阅读 · 0 评论 -
scrapy框架之选择器
本文内容比较乱,只作为本人自己复习使用,不供他人学习使用。见谅。目标网站# https://doc.scrapy.org/en/latest/_static/selectors-sample1.html# scrapy shell https://doc.scrapy.org/en/latest/_static/selectors-sample1.html# 命令行交互模式...原创 2018-08-02 23:02:31 · 243 阅读 · 0 评论 -
scrapy框架之custom_settings讲解(详细)
custom_setting:是对setting中的文件内容进行覆盖。 这里我们以爬取知乎的网站为例。 知识点介绍: custom_settings :对框架中的内容进行覆盖,比如我想覆盖setting中的headers的内容,那么只要将header的内容写入custom_settings中,然后改变headers的值即可, 当程序再次运行时会覆盖以前setting的headers值,而运行你...原创 2018-08-03 10:56:56 · 14823 阅读 · 1 评论 -
python爬虫之xpath的使用方法
XPath的使用方法: 四种标签的使用方法 1) // 双斜杠 定位根节点,会对全文进行扫描,在文档中选取所有符合条件的内容,以列表的形式返回。 2) / 单斜杠 寻找当前标签路径的下一层路径标签或者对当前路标签内容进行操作 3) /text() 获取当前路径下的文本内容 4) /@xxxx 提取当前路径下标签的属性值 5) | 可选符 使用|可选取若干个路径 如//p |...原创 2018-08-02 21:30:39 · 510 阅读 · 0 评论 -
json.dumps(),json.loads(),json.dump(),json.load()方法的区别(超级详细)
1. json.dumps() json.dump()是将字典类型转化成字符串类型。import jsondic = {'a':'1111','b':'2222','c':'3333','d':'4444'} st = json.dumps(dic)print("我是字典类型的", dic)print("我是字符串类型的",st)print(type(dic))print(ty...转载 2018-08-01 22:32:14 · 6336 阅读 · 0 评论 -
python爬虫之scrapy框架的安装(详细)
正常情况下scrapy在windows下面安装时非常麻烦的。这里面涉及到各种库的安装。 关于库的安装,平常的安装方法很有可能失败,可能受网速等原因的限制。直接在dos控制台下面安装容易失败。特此,我们使用的方法是将包先下载到本地(这个过程比较慢,有条件的可以翻墙),然后在控制台下用命令进行安装。 我们安装的库有: 1.wheel::直接输入pip install -i https://py...原创 2018-08-02 08:34:56 · 822 阅读 · 0 评论 -
python爬虫之scrapy框架命令行(超级详细)
知识点1.创建项目scrapy startproject testproject# testproject是项目的名称可以自己命名输出结果为:C:\Users\qs418>scrapy startproject testprojectNew Scrapy project 'testproject', using template directory 'd:\\pyth...原创 2018-08-02 13:04:53 · 7886 阅读 · 1 评论 -
机器学习入门:库的导入和添加
库的导入以math库为例import mathmath.sin(pi)math.exp(2)为库起一个别名,简化代码import math as mm.sin(x)导入特定的库 上文中导入的库是导入全部的math库from math import exp as ee(1)#只能计算e...原创 2018-07-07 15:24:08 · 516 阅读 · 0 评论 -
python爬虫错误之json.dumps()方法产生中文乱码问题解决方法
json.dumps()方法是将字典型数据转化成字符串型数据,而json.dumps ()方法对中文默认使用的ascii编码.如果要输出中文需要指定ensure_ascii=False:具体猫眼电影程序如下: 可能各位在爬取猫眼程序时会出现错误: 这可能是猫眼电影的反爬虫,不过等一段时间再去爬就可以了。import requestsimport reimport jsonfrom r...原创 2018-08-01 16:38:16 · 3615 阅读 · 0 评论 -
python爬虫之pool.map()
pool = Pool() # 创建进程池 pool.map(main, [i*10 for i in range(10)])# 将数组中的每个元素提取出来当作函数的参数,创建一个个进程,放进进程池中# 第一个参数是函数,第二个参数是一个迭代器,将迭代器中的数字作为参数依次传入函数中作用:这是多进程的创建,应用在爬虫中主要目的是提高爬取的效率,实现秒爬...原创 2018-08-01 17:18:56 · 15456 阅读 · 4 评论 -
python爬虫之正则表达式程序
# re.match(pattern,string,flags=0)# pattern:正则表达式# string:字符串# flags:匹配模式# import re# content = 'hello sdhcjd ajdvqn acdeu akdj qsdwr 123 456'# print(len(content))# result = re.match('hello...原创 2018-07-30 18:57:08 · 215 阅读 · 0 评论 -
python爬虫之'urllib' has no attribute 'URLError错误
‘urllib3’ has no attribute ‘URLError是由于版本的问题出现错误,python3,0无法继续使用urllib,只要将所有urllib的地方更改为:urllib.request即可。import urllib.requestimport timeimport platformdef clear(): print('翻页') time....原创 2018-07-26 14:23:48 · 3751 阅读 · 0 评论 -
python爬虫错误 之 write() argument must be str, not bytes
当遇到标题的错误时候,请把以写的方式读入文件即 with open('./baidu.txt','w') as fp: fp.write(response.read())改成”w”改成”wb+“,意思是将原来的以写方式打开文件,改为以二进制模式打开文件 # urllib模块:请求返回网页 # 主要函数:urlopen():打开http,https,ftp协议...原创 2018-07-26 14:40:58 · 5212 阅读 · 1 评论 -
python 一篇文章搞懂写入文件
import osdef file(): with open("text.txt","w") as f: #打开text文件 赋给对象f f.write("who are you") #f调用write方法写入内容who are you with open('text.txt') as fp: st = fp.read() ...原创 2018-07-26 15:31:00 · 652 阅读 · 0 评论 -
python爬虫之cookie的HTTPCookieProcessor
通过阅读源码我们可以知道,我们在调用urllib2.urlopen(url)的时候,其实urllib2在open函数内部创建了一个默认的opener对象。然后调用opener.open()函数。 但是默认的opener并不支持cookie。 那么我们先新建一个支持cookie的opener。urllib2中供我们使用的是HTTPCookieProcessor。创建HTTPCookiePro...原创 2018-07-28 21:47:48 · 4045 阅读 · 0 评论 -
FileCookieJar的子类MozillaCookieJar和LWPCookieJar实现了save()方法
FileCookieJar的子类MozillaCookieJar和LWPCookieJar实现了save()方法。# 经典实例1:import http.cookiejar,urllib.requestfilename = 'cookie.txt'cookie = http.cookiejar.MozillaCookieJar(filename)handler = urllib.req...原创 2018-07-29 07:44:22 · 1758 阅读 · 0 评论 -
python爬虫之httperror与urlerror
httperror:当我们向服务器发出请求时,服务器会产生response请求,如果urlopen不能处理则爆出httperror异常 httperror的父类是urlerror异常 urlerror:产生的原因主要是1.网络没有连接,2服务器连接失败,3,找不到指定的服务器。 我认为:httperror时urlerror的详细化的错误异常,url只能粗略的判断异常的原因,而httper...原创 2018-07-29 09:57:01 · 1703 阅读 · 0 评论 -
python爬虫之requests库实例代码
# 简单实例引入# import requests# response = requests.get('https://www.baidu.com')# print(type(response))# print(response.status_code)# print(response.text)# print(response.cookies)# 请求方式# import r...原创 2018-07-29 20:40:48 · 1909 阅读 · 0 评论 -
python爬虫之BeautifulSoup库程序笔记
# from bs4 import BeautifulSoup# html = ''# soup = BeautifulSoup(html,'lxml') #使用lxml解析器# print(soup.prettify()) #格式化网页代码,将页面代码补全# print(soup.title.string) # 输出title的字符型# 标签选择器# # 选择元素:# f...原创 2018-07-30 21:13:02 · 304 阅读 · 0 评论 -
python爬虫之PyQuery库程序笔记
# 字符串初始化# html = '<div><ul class="list" ><li class="i_0">0</li><li class="i_1"><a href="http://www.baid.com">baidu</a&g原创 2018-07-31 10:13:10 · 510 阅读 · 0 评论 -
python爬虫之selenium库之'list' object has no attribute 'send_keys'错误
# 元素的交互操作from selenium import webdriverimport timebrowser = webdriver.Chrome()browser.get('https://www.taobao.com')input = browser.find_elements_by_id('q') # 找到搜索框的id为qinput.send_keys('IPhone')...原创 2018-07-31 20:17:22 · 27878 阅读 · 9 评论 -
python爬虫之selenium库
# selenium:自动化测试工具,支持多种浏览器,解决爬虫中js渲染问题# 基本使用# from selenium import webdriver# from selenium.webdriver.common.by import By# from selenium.webdriver.common.keys import Keys# from selenium.webdriv...原创 2018-07-31 23:33:15 · 211 阅读 · 0 评论 -
利用requests库和正则表达式爬取猫眼电影
import requestsimport reimport jsonfrom requests.exceptions import RequestExceptiondef get_one_page(url, headers): try: response = requests.get(url, headers) if response.stat...原创 2018-08-01 15:47:40 · 421 阅读 · 0 评论