python爬虫

简单让你会写一个简单爬虫

陌路散爱 提交于 2020-01-25 17:36:52
爬虫-》 (又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。 那么重点来了,就是自动抓取信息 有些人,想试试爬虫,但是看着太复杂,代码太多,就觉得不想弄了。然而其实爬虫代码前篇一律,我这里就非常简单的讲一下爬虫。 总结来说,步骤就是 请求服务器-》获得响应信息-》信息解析-》信息存储 我这里讲的是 python爬虫 哈 1.发送请求 请求 首先我还是扯出来一段代码:(当然你copy运行后还是乱码,因为还没解析) import requests r = requests . get ( 'http://www.baidu.com/' ) print ( "文本编码:" , r . encoding ) print ( "响应状态码:" , r . status_code ) print ( "字符串方式的响应体:" , r . text ) 我们把互联网比作一栋楼,而我们要爬的网站,就是那些住户,每个住户呢都有自己的门牌号(URL)。 发送请求 呢就是输入 门牌号 还有自己的 身份标识 (这段代码没有加上自己的身份标识,有些网站会判断你的身份就需要了)然后 请求住户同意 。 那么我们这里用的是requests这个python的包(提前安装) 这里讲下得到的 r 的内容: r . text

python爬虫教程代码示例经典例子菜鸟怎么学

丶灬走出姿态 提交于 2020-01-25 15:56:05
实例3–股票数据定向爬虫 程序结构如下: 1.先从网站中获取股票代号列表(requests库,re库) 2.遍历每一只股票,从股票信息网站中获得详细信息 3.使用字典的数据结构,写入文本文件中 更多的内容学习 点我 以下为代码: 1 # 股票数据定向爬虫 2 """ 3 Created on Thu Oct 12 16:12:48 2017 4 5 @author: DONG LONG RUI 6 """ 7 import requests 8 from bs4 import BeautifulSoup 9 import re 10 #import traceback 11 12 def getHTMLText(url,code='utf-8'):#参数code缺省值为‘utf-8’(编码方式) 13 try: 14 r=requests.get(url,timeout=30) 15 r.raise_for_status() 16 #r.encoding=r.apparent_encoding 17 r.encoding=code 18 return r.text 19 except: 20 return '' 21 22 def getStockList(lst,stockURL): 23 html=getHTMLText(stockURL,'GB2312') 24 soup

爬虫学习——批量在geoserver发布矢量数据

左心房为你撑大大i 提交于 2020-01-25 10:08:17
前提:数据样式格式一致 工具:selenium+Chromedriver; 本次代码主要依靠selenium+Python,浏览器我用的是Chrome浏览器以及相应的驱动Chromedriver,selenium可以通过pip安装,Chromedriver要去网上下载与浏览器版本一致的安装包,具体安装过程自行百度。 数据前期准备: Python代码: import time from selenium import webdriver import os def getFiles(dir, suffix): # 查找根目录,文件后缀 res = [] for root, directory, files in os.walk(dir): # =>当前根,根下目录,目录下的文件 for filename in files: name, suf = os.path.splitext(filename) # =>文件名,文件后缀 if suf == suffix: res.append(name) # =>吧一串字符串组合成路径 return res driver= webdriver.Chrome() driver.get('http://localhost:8080/geoserver/web/wicket/bookmarkable/org.geoserver.web.data

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

僤鯓⒐⒋嵵緔 提交于 2020-01-25 04:45:30
ItemPipeline的介绍 当Item在Spider中被收集之后,它将会被传递到Item Pipeline,一些组件会按照一定的顺序执行对Item的处理。 每个item pipeline组件(有时称之为“Item Pipeline”)是实现了简单方法的Python类。他们接收到Item并通过它执行一些行为,同时也决定此Item是否继续通过pipeline,或是被丢弃而不再进行处理。 以下是item pipeline的一些典型应用: 清理HTML数据 验证爬取的数据(检查item包含某些字段) 查重(并丢弃) 将爬取结果保存到数据库中 编写自己的item pipeline 编写你自己的item pipeline很简单,每个item pipiline组件是一个独立的Python类,同时必须实现以下方法: 1 ) process_item(item, spider) 每个item pipeline组件都需要调用该方法,这个方法必须返回一个 Item (或任何继承类)对象, 或是抛出 DropItem 异常,被丢弃的item将不会被之后的pipeline组件所处理。 参数: item (Item 对象) – 被爬取的item spider (Spider 对象) – 爬取该item的spider 2 ) open_spider(spider) 当spider被开启时,这个方法被调用。

Python 爬虫使用固定代理IP

早过忘川 提交于 2020-01-25 04:16:15
购买的固定代理IP一般都需要账号密码, 在网上找了几个使用方法,但是都报错,所以,就想了这个笨办法,如有好办法希望大家指点。 ''' 遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333 寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书! ''' import requests from requests . auth import HTTPBasicAuth proxy = { 'http' : 'http://ip:port' , 'https' : 'https://ip:port8' } head = { 'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) ' 'Chrome/50.0.2661.102 Safari/537.36' , 'Connection' : 'keep-alive' , 'Proxy-Authorization' : '...' # 在浏览器中获取此值 } p = requests . get ( 'http://icanhazip.com' , headers = head ) print ( p . content . decode ( 'utf-8' ) ) --

【python学习】scrapy爬虫框架学习

▼魔方 西西 提交于 2020-01-25 03:04:51
scrapy学习,可以参考:scrapy1.5中文文档, http://www.scrapyd.cn/doc/ 1)创建项目 指定文件夹目录创建项目,cmd进入文件夹路径,使用命令: scrapy startproject 项目名 创建成功后的项目目录结构: 2)编写第一个蜘蛛,参考: http://www.scrapyd.cn/doc/140.html import scrapy class mingyan(scrapy.Spider): # 需要继承scrapy.Spider类 name = "mingyan2" # 定义蜘蛛名(crwal后的名称) start_urls = ['http://lab.scrapyd.cn'] def parse(self, response): mingyan = response.css('div.quote') for v in mingyan: # 循环获取每一条名言里面的:名言内容、作者、标签 text = v.css('.text::text').extract_first() # 提取名言 autor = v.css('.author::text').extract_first() # 提取作者 tags = v.css('.tags .tag::text').extract() # 提取标签 tags = ','.join

爬虫值requests库

二次信任 提交于 2020-01-25 01:58:02
requests简介 简介 Requests是用python语言基于urllib编写的,采用的是Apache2 Licensed开源协议的HTTP库 ,使用起来比urllib简洁很多 因为是第三方库,所以使用前需要cmd安装 pip install requests 安装完成后import一下,正常则说明可以开始使用了。 基本用法: requests.get()用于请求目标网站,类型是一个HTTPresponse类型 import requests response = requests.get('http://www.baidu.com')print(response.status_code) # 打印状态码print(response.url) # 打印请求urlprint(response.headers) # 打印头信息print(response.cookies) # 打印cookie信息 print(response.text) #以文本形式打印网页源码print(response.content) #以字节流形式打印 运行结果: 状态码:200 url:www.baidu.com headers信息 各种请求方式: import requests requests.get('http://httpbin.org/get') requests.post('http:/

Python爬虫番外篇之Cookie和Session

三世轮回 提交于 2020-01-24 14:55:22
转自: Python爬虫番外篇之Cookie和Session python修行路 关于cookie和session估计很多程序员面试的时候都会被问到,这两个概念在写web以及爬虫中都会涉及,并且两者可能很多人直接回答也不好说的特别清楚,所以整理这样一篇文章,也帮助自己加深理解 什么是Cookie 其实简单的说就是当用户通过http协议访问一个服务器的时候,这个服务器会将一些Name/Value键值对返回给客户端浏览器,并将这些数据加上一些限制条件。在条件符合时,这个用户下次再访问服务器的时候,数据又被完整的带给服务器。 因为http是一种无状态协议,用户首次访问web站点的时候,服务器对用户一无所知。而Cookie就像是服务器给每个来访问的用户贴的标签,而这些标签就是对来访问的客户端的独有的身份的一个标识,这里就如同每个人的身份证一样,带着你的个人信息。而当一个客户端第一次连接过来的时候,服务端就会给他打一个标签,这里就如同给你发了一个身份证,当你下载带着这个身份证来的时候,服务器就知道你是谁了。所以Cookie是存在客户端的,这里其实就是在你的浏览器中。 Cookie中包含了一个由名字=值(name = value)这样的信息构成的任意列表,通过Set-Cookie或Set-Cookie2 HTTP响应(扩展)首部将其贴到客户端身上。如下图例子所示: 其实这里有一个非常典型的应用

Home · chineking/cola Wiki

烈酒焚心 提交于 2020-01-24 14:50:50
Home · chineking/cola Wiki Home Cola Cola是一个分布式的爬虫框架,用户只需编写几个特定的函数,而无需关注分布式运行的细节。任务会自动分配到多台机器上,整个过程对用户是透明的。 依赖 首先,确保Python版本为2.6或者2.7(未来会支持3+)。由于Cola配置文件使用的yaml,所以Cola只依赖于pyyaml,安装easy_install或者pip工具后,则可以: pip install pyyaml 安装 下载或者用git clone源码,假设在目录/to/pth/cola,将该路径添加到Python path中。 一种简单的方法是在site-packages中添加pth文件。site-packages因系统而异,如果是windows,假设python装在C:\python27,那么就是C:\python27\Lib\site-packages;如果是linux,那么应该是/usr/local/lib/pythonX.X/dist-packages。 在site-packages下新建一个cola.pth文件,里面写上路径:/to/path/cola。 运行 Cola集群需要一个master和若干个worker,对于每台机器,只能启动一个worker。但是,集群不是必须的,在单机模式下亦可以运行。 Cola目前自带了若干个爬虫

Python数据采集常见的三种爬虫语法------Xpath篇

拟墨画扇 提交于 2020-01-24 07:49:54
在讲Xpath语法之前,首先我们需要了解一下Lxml库,要不然就算我们知道语法了,没有库的支持一切都是白搭,废话不多说,直接进入主题。 1、Lxml库 Lxml库的基本概念: Lxml是Python中的一个解析库,支持Xpath语法解析方式,可以用来解析Xml结构,由于Html结构和Xml结构大致相似都是树形结构,所以Lxml也可以解析Html。 Lxml库的常见模块:Etree 我先来谈谈我对这个库的认识,Etree库的作用是对爬取出来的Html页面进行初始化操作,下面简单列举一下Etree模块的用法: 1、 文本转换成HTML对象 #HTML方法 html = etree.HTML ( text ) 2、 将对象转成html文本 html = etree.HTML ( text ) result = etree.tostring ( html ) 3、 解析页面并返还Html对象 html = etree.parse ( 'text.html' ) 当然这个模块下想必不止这一些方法,Lxml库下也不止着一些模块,这边由于本人能力有限不能一一向大家介绍清楚,感兴趣的可以自己深入了解一下哈哈哈,这边草率地介绍一下爬虫解析页面时常用的三种方法。 Lxml安装: 命令行安装win+r,输入Cmd,进入终端模式(配好Python的环境变量) 2.在开发工具里面安装库包