python爬虫

Python笔记:爬虫框架Scrapy之Downloader Middleware的使用

♀尐吖头ヾ 提交于 2020-01-24 06:46:23
Downloader Middleware的功能 在Downloader Middleware的功能十分强大: 可以修改User-Agent 处理重定向 设置代理 失败重试 设置Cookies等 Downloader Middleware在整个架构中起作用的位置是以下两个: 在Scheduler调度出队列的Request发送给Doanloader下载之前,也就是我们可以在Request执行下载前对其进行修改。 在下载后生成的Response发送给Spider之前,也就是我们可以生成Resposne被Spider解析之前对其进行修改。 Scrapy中的内建Downloader Middleware 在Scrapy中已经提供了许多Downloader Middleware,如:负责失败重试、自动重定向等中间件: 它们都被定义到DOWNLOADER_MIDDLEWARES_BASE变量中。 注:下面的配置,是全局配置,不要修改,如果要修改,去修改项目中的配置! # 在python3.6/site-packages/scrapy/settings/default_settings.py默认配置中 DOWNLOADER_MIDDLEWARES_BASE = { # Engine side 'scrapy.downloadermiddlewares.robotstxt

Python_爬虫_xpath/bs4/re小实战

点点圈 提交于 2020-01-24 02:32:26
1 #爬取糗事百科照片(前5页)   ·##利用正则表达式 2 import requests #请求数据 4 from urllib import request #请求数据,用这个方便下载照片 5 import re #正则 6 #糗事百科照片地址 7 #普通get请求获取 8 k = 0 9 for i in range(1,6): 10 url = f'https://www.qiushibaike.com/imgrank/page/{i}/' 11 #UA伪装防止识破 12 headers = { 13 "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36" 14 } 15 #获取响应对象response 16 res = requests.get(url, headers=headers) 17 #利用正则表达式findall,返回列表,re.S 是用来在html中的/t/n等解决方式 18 img_urls = re.findall('<div class="thumb">.*?<img src="(.*?)".*? height="auto">.*?</div>',

Python爬虫:urllib库的基本使用

◇◆丶佛笑我妖孽 提交于 2020-01-24 00:59:22
Python爬虫:urllib库的基本使用 Python 爬虫 请求网址获取网页代码 import urllib.request url = "http://www.baidu.com" response = urllib.request.urlopen(url) data = response.read() # print(data) # 将文件获取的内容转换成字符串 str_data = data.decode( "utf-8" ) print(str_data) # 将结果保存到文件中 with open( "baidu.html" , "w" , encoding= "utf-8" ) as f: f.write(str_data) get带参数请求 import urllib.request def get_method_params (wd) : url = "http://www.baidu.com/s?wd=" # 拼接字符串 final_url = url + wd # 发送网络请求 response = urllib.request.urlopen(final_url) print(response.read().decode( "utf-8" )) get_method_params( "美女" ) 直接这么写会报错: 原因是,网址里面包含了汉字

爬虫:网易严选

孤街浪徒 提交于 2020-01-23 23:06:51
爬虫:网易严选 作者:石头炒面 联系方式:903565442@qq.com 声明:任何形式的转载都需要过问本人,否则后果自负。本文技术入门级,所以请不要引起没必要的争论。互相学习就好。 摘要:网易严选是国内知名的电商平台,其商品数量繁多,所以在网站中可以大量的挖掘其数据进行商业分析,本文章采用requests技术对网站进行爬虫分析,并对其后的数据结果进行处理分析。 1.爬虫篇 1.1爬虫包的总述 题主这里对爬虫技术做简单的归纳和综述。python爬虫的依赖包常见的有三种:requests,urllib和selenium。其中urllib为python的内置包,其使用操作可以满足大多的网络爬虫工作,是最原始的爬虫包,其使用方法简单,容易上手。requests是基于urllib整合的爬虫包,其在urllib的基础上继续升华,是目前使用最广泛,应用最简单的爬虫包。selenium的角色比较特殊,网站的服务器对爬虫的识别是网站反爬的必要环节,而爬虫对服务器的伪装是反反扒的关键。但是不管的requests还是urllib都无法完全模拟人类访问服务器的操作,但是selenium做到了,selenium或许是反爬虫的顶端,但是对比另外的两个包,selenium往往要花更长的时间去获取数据,所以我建议能不用就不用。 1.2开始爬虫 首先要建立自己的工作目录:网易严选爬虫(文档)。

Python爬虫:urllib库的基本使用

我与影子孤独终老i 提交于 2020-01-23 22:31:30
请求网址获取网页代码 import urllib.request url = "http://www.baidu.com" response = urllib.request.urlopen(url) data = response.read() # print(data) # 将文件获取的内容转换成字符串 str_data = data.decode("utf-8") print(str_data) # 将结果保存到文件中 with open("baidu.html", "w", encoding="utf-8") as f: f.write(str_data) get带参数请求 import urllib.request def get_method_params(wd): url = "http://www.baidu.com/s?wd=" # 拼接字符串 final_url = url + wd # 发送网络请求 response = urllib.request.urlopen(final_url) print(response.read().decode("utf-8")) get_method_params("美女") 直接这么写会报错: 原因是,网址里面包含了汉字,但是ascii码是没有汉字的,需要转义一下: import urllib.request import

python爬虫-使用cookie登录

被刻印的时光 ゝ 提交于 2020-01-23 19:51:52
本文转载自: https://www.cnblogs.com/xiaoxi-3-/p/7586072.html 作者:xiaoxi-3- 转载请注明该声明。 前言: 什么是cookie? Cookie,指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密)。 比如说有些网站需要登录后才能访问某个页面,在登录之前,你想抓取某个页面内容是不允许的。那么我们可以利用Urllib库保存我们登录的Cookie,然后再抓取其他页面,这样就达到了我们的目的。 一、Urllib库简介 Urllib是python内置的HTTP请求库,官方地址:https://docs.python.org/3/library/urllib.html 包括以下模块: >>> urllib.request 请求模块 >>> urllib.error 异常处理模块 >>> urllib.parse url解析模块 >>>urllib.robotparser robots.txt解析模块 二、urllib.request.urlopen介绍 uurlopen一般常用的有三个参数,它的参数如下: urllib.requeset.urlopen(url,data,timeout) 简单的例子: 1、url参数的使用(请求的URL) response = urllib.request

自己写个爬虫实现博客文章搜索功能(针对自己的博客文章)

余生长醉 提交于 2020-01-23 18:50:23
文章目录 最终效果 一. 前言 二. 思路 三. 撸起袖子写代码 1 python爬虫,爬自己的CSDN文章 2. web服务器 3. 静态网页 四. 启动web服务器,测试 最终效果 一. 前言 对于自己的CSDN文章,由于只能工具标题关键字搜索,如果文章很多的话,记不清文章标题,这个时候搜索就会比较麻烦,那就自己做一个搜索功能。 二. 思路 把自己的CSDN文章都爬到本地 写个web服务器,负责执行搜索任务 写个静态html页面,负责输入搜索的关键字和展示搜索结果 三. 撸起袖子写代码 目录结构如下 1 python爬虫,爬自己的CSDN文章 python版本:3.8 需要安装库: requests 、 BeautifulSoup csdn_spider.py # csdn_spider.py import requests from bs4 import BeautifulSoup import base64 import os import re import json from threading import Thread import time # 总页数 PAGE_CNT = 16 BLOG_URL = 'https://blog.csdn.net/linxinfa/article/list/' DOWNLOADD_DIR = 'articles/' page

网络爬虫技术总结

两盒软妹~` 提交于 2020-01-23 11:47:45
网络爬虫技术总结 http://mp.weixin.qq.com/s?__biz=MzI3MTI2NzkxMA==&mid=2247484132&idx=1&sn=8db587fabc3c630decf0419b6130770e&scene=23&srcid=0720ZByjAlOM9YC5c76N9uKU#rd   对于大数据行业,数据的价值不言而喻,在这个信息爆炸的年代,互联网上有太多的信息数据,对于中小微公司,合理利用爬虫爬取有价值的数据,是弥补自身先天数据短板的不二选择,本文主要从爬虫原理、架构、分类以及反爬虫技术来对爬虫技术进行了总结。 1、爬虫技术概述 网络爬虫(Web crawler),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本,它们被广泛用于互联网搜索引擎或其他类似网站,可以自动采集所有其能够访问到的页面内容,以获取或更新这些网站的内容和检索方式。从功能上来讲,爬虫一般分为数据采集,处理,储存三个部分。 传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。聚焦爬虫的工作流程较为复杂,需要根据一定的网页分析算法过滤与主题无关的链接,保留有用的链接并将其放入等待抓取的URL队列。然后,它将根据一定的搜索策略从队列中选择下一步要抓取的网页URL

爬虫学习 04.Python网络爬虫之requests模块(1)

笑着哭i 提交于 2020-01-23 00:43:35
爬虫学习 04.Python网络爬虫之requests模块(1) 引入 Requests 唯一的一个 非转基因 的 Python HTTP 库,人类可以安全享用。 警告 :非专业使用其他 HTTP 库会导致危险的副作用,包括:安全缺陷症、冗余代码症、重新发明轮子症、啃文档症、抑郁、头疼、甚至死亡。 今日概要 基于requests的get请求 基于requests模块的post请求 基于requests模块ajax的get请求 基于requests模块ajax的post请求 综合项目练习:爬取国家药品监督管理总局中基于中华人民共和国化妆品生产许可证相关数据 知识点回顾 常见的请求头 常见的相应头 https协议的加密方式 今日详情 - 基于如下5点展开requests模块的学习 什么是requests模块 requests模块是python中原生的基于网络请求的模块,其主要作用是用来模拟浏览器发起请求。功能强大,用法简洁高效。在爬虫领域中占据着半壁江山的地位。 为什么要使用requests模块 因为在使用urllib模块的时候,会有诸多不便之处,总结如下: 手动处理url编码 手动处理post请求参数 处理cookie和代理操作繁琐 … 使用requests模块: 自动处理url编码 自动处理post请求参数 简化cookie和代理操作 … 如何使用requests模块 安装:

python爬虫学习

拟墨画扇 提交于 2020-01-22 22:54:52
利用python爬虫实现在目标网页上爬取图片的功能。 爬取图片 爬虫代码 图形化界面 总结 爬取图片 要实现目标功能首先考虑的是要如何实现从网上爬取图片,通过在网上参考学习我选择通过引用python的requests和re、os模块实现爬虫。下面我简单介绍一下引用这三个模块的目的,有兴趣深入了解的话网上都能搜到相关的详尽的文章。 requests是使用Apache2 licensed 许可证的HTTP库,用python编写。比urllib2模块更简洁。Request支持HTTP连接保持和连接池,支持使用cookie保持会话,支持文件上传,支持自动响应内容的编码,支持国际化的URL和POST数据自动编码,在python内置模块的基础上进行了高度的封装,从而使得python进行网络请求时,变得人性化,使用Requests可以轻而易举的完成浏览器可有的任何操作。 python 中使用正则表达式需要引入re模块,正则表达式是用来匹配处理字符串的 。 需要查找操作文件,比如说查找配置文件(从而读取配置文件的信息),查找测试报告(从而发送测试报告邮件),要对大量文件和大量路径进行操作,这就依赖于os模块。 爬虫代码 引用需要的的模块。 #_*_coding:utf-8_*_ import requests import re import os 接下来我们定义一个爬虫类,用于从网页上爬取图片