爬虫 - 技术教程文章

爬虫 之基本原理【代码】【图】

爬虫到底是个什么玩意?为什么要有这么多参数要设置?到底应该怎么发送请求?请求库,解析库,存储数据的方式?请求到的内容跟浏览器看到的内容不一样? 爬虫基本原理的梳理1.什么是爬虫?---->请求网站并提取数据的自动化程序。  爬虫呢也就是网络爬虫,可以理解为在网络上爬行着一只蜘蛛,互联网可以把它比喻为一个大网。这个爬虫呢就是在这个网上一直爬来爬去的一个蜘蛛,它如果在这个互联网上遇到一些网站资源就可以把它抓取...

Selenium FF WebDriver 遍历所有链接(另类爬虫)【代码】【图】

请看这个页面,我想要找到某个公告的内容,必须一个一个打开链接,尼玛好多啊。于是,我机智的使用selenium打开每一个链接,然后把公告内容写入txt那需要做一下步奏1.依次打开一个公告2.切换focus到新窗口,找到公告内容,写到txt3.关闭该窗口4.切换到主窗口5.当前页面遍历完,点击下一页6.重复步奏1 由于下一页是一个很好用的flag,就可以当做循环条件,因为最后一页没有下一页的element接下来要找到相关的的xpath列表数目: coun...

Python爬虫框架Scrapy 学习笔记 6 ------- 基本命令【代码】

1. 有些scrapy命令,只有在scrapy project根目录下才available,比如crawl命令2 . scrapy genspider taobao http://detail.tmall.com/item.htm?id=12577759834自动在spider目录下生成taobao.py# -*- coding: utf-8 -*- import scrapyclass TaobaoSpider(scrapy.Spider): name = "taobao" allowed_domains = ["http://detail.tmall.com/item.htm?id=12577759834"] start_urls = ( ‘http://www.http://detail.tm...

用scrapy 爬虫框架读取统计局网站的行政区划(备忘记录)【代码】【图】

不知不觉养成了一个习惯:完成一个工作或学习新知识后,要及时整理,否则过一段时间就忘记了。下面是用scrapy 爬虫框架读取行政区划的记录1. SelectorGadget 是个好东西,下载和安装可以网上查 安装后,会在crome浏览器右上角有个图标。 点击 右上角这个图标后,进入css选取模式, (1)点击网页内容,被选取内容显示黄色,同时css选择器会显示在控制面板上。(2)再点击黄色内容,会变红色,表示排除这一项标签。如图: 表...

使用Scrapyd部署Scrapy爬虫到远程服务器上

1、准备好爬虫程序2、修改项目配置  找到项目配置文件scrapy.cnf,将里面注释掉的url解开来  本代码需要连接数据库,因此需要修改对应的数据库配置    其实就是将里面的数据库地址进行修改,变成远程数据库服务器地址,需要保证scrapy服务器能够连接数据库服务器3、部署项目  在部署项目之前要保证scrapyd服务是开启状态。    进入本地爬虫工程的目录  执行对应的部署命令4、调度爬虫  调度爬虫需要使用curl,以下...

反爬虫

你被爬虫侵扰过么?当你看到“爬虫”两个字的时候,是不是已经有点血脉贲张的感觉了?千万要忍耐,稍稍做点什么,就可以在名义上让他们胜利,实际上让他们受损失。一、为什么要反爬虫1、爬虫占总PV比例较高,这样浪费钱(尤其是三月份爬虫)。三月份爬虫是个什么概念呢?每年的三月份我们会迎接一次爬虫高峰期。最初我们百思不得其解。直到有一次,四月份的时候,我们删除了一个url,然后有个爬虫不断的爬取url,导致大量报错,测试...

爬虫的修养-博客篇【代码】【图】

此次的爬虫对象是:http://blog.csdn.net/sinyu890807的文章请务必理解:python的基础(http://www.cnblogs.com/courtier/p/4285897.html),urllib基本使用,了解http协议首先,为了不让服务器报403,我们必须设置个能随机User-Agent的列表:#user_agent_header = [‘Mozilla/5.0 (Windows NT 5.2) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.122 Safari/534.30‘,‘Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/201001...

request模块的简单使用+爬虫小程序【代码】

爬虫之request各种请求方式gethost_url = ‘https://www.pearvideo.com/‘ #浏览器的版本等信息 headers = {"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.80 Safari/537.36" } res = requests.get(host_url, headers=headers)post r = requests.post(‘http://httpbin.org/post‘, data = {‘key‘:‘value‘})deleter = requests.delete(‘http://httpbin...

最基础网页爬虫【代码】

第一个网页文本爬虫程序(没有添加下载器): 1import requests2from bs4 import BeautifulSoup3import os4 5 headers={‘User-Agent‘:"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTMl,like Gecko) Chrome/22.0.1207.1 Safari/537.1"}6 url_begin= ‘http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000‘ 7 start_url=requests.get(url_begin,headers=headers)8#print(start_u...

Python网络爬虫神器PyQuery的使用方法【代码】

#!/usr/bin/env python # -*- coding: utf-8 -*-import requests from pyquery import PyQuery as pqurl = ‘http://www.136book.com/huaqiangu/‘ headers = {‘User-Agent‘: ‘Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36‘‘ (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36‘ }# 请求网页链接 获取页面源码 r = requests.get(url, headers=headers).text doc = pq(r) # 获取网页的全部章节...

google为什么将爬虫从python移植到C++

这是好几年前Quora上的一个问题,有点过时,但看了之后感觉不错,就总结了一下原文链接:http://www.quora.com/Why-did-Google-move-from-Python-to-C++-for-use-in-its-crawler1.谷歌有强大的C++库支持分布式系统2.C++运行更稳定3.在当下的集群环境中,每一点点小的效率累加起来都带来很大的效益4.发展起来的google并不是将开发效率放在首位,而更注重程序的稳定性5.爬虫的主要瓶颈在于高并发,而python对高并发情形的细节控制不够...

爬虫_中国天气网_文字天气预报(xpath)【代码】【图】

1import requests2from lxml import etree3 4 headers = ‘Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36‘ 5 6def get_html(url):7try:8 html = requests.get(url, headers={‘User-Agent‘:‘headers‘})9 html.encoding = html.apparent_encoding 10if html.status_code == 200: 11return html.text 12return 0 1314except RequestsExcept...

网络爬虫urllib2 tornado【代码】

百度不支持用tornado请求,可以用美团开放API 测试。 1import tornado.httpclient2 3def fetch(url):4 http_header={‘User-Agent‘:‘Chrome‘}5 http_request=tornado.httpclient.HTTPRequest(url=url,method=‘GET‘,headers=http_header,connect_timeout=200, request_timeout=600)6 7 http_client=tornado.httpclient.HTTPClient()8 9 http_response=http_client.fetch(http_request) 1011print http_response.code 1213 all_...

PYTHON爬虫代理如何设置?用免费IP或IP池和REQUEST库爬取网页【图】

0元免费IP列表首先分享一波:免费代理由第三方服务器提供,IP质量不高。IP地址 端口号 匿名程度 支持协议 地区 稳定时间 更新时间FREE 114.233.51.111 4257 超高HTTP江苏省泰州市5-1440分钟2020/10/18 11:00:01FREE 49.71.99.110 4226 超高HTTP江苏省扬州市5-1440分钟2020/10/18 10:00:01FREE 183.4.66.22 4205 超高HTTP广东省江门市5-1440分钟2020/10/18 09:00:01FREE 119.7.231.13 64261 超高HTTP四川省雅安市5-1440分钟2020/10/...

2.3 基于宽度优先搜索的网页爬虫原理讲解【代码】

上一节我们下载并使用了宽度优先的爬虫,这一节我们来具体看一下这个爬虫的原理。 首先,查看HTML.py的源代码。第一个函数:def get_html(url):try:par = urlparse(url)Default_Header = {‘X-Requested-With‘: ‘XMLHttpRequest‘,‘Referer‘: par[0] + ‘://‘ + par[1],‘User-Agent‘: ‘Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.87 Safari/537.36‘,‘Host‘: par[1...

使用selenium实现简单网络爬虫抓取MM图片【代码】

撸主听说有个网站叫他趣,里面有个社区,其中有一项叫他趣girl,撸主点进去看了下,还真不错啊,图文并茂,宅男们自己去看看就知道啦~  接下来当然就是爬取这些妹子的图片啦,不仅仅是图片,撸主发现里面的对话也很有意思,于是把对话也一并抓取下来好了。  那么问题来了,用什么工具呢?在之前的练习中已经用过urllib2,正则表达式匹配实在麻烦,这次来点稍微高级的,试试selenium;  selenium是什么?其实它是一个web自动化...

Python爬虫抓取纯静态网站及其资源 !这个项目挣了10k!【代码】

遇到的需求前段时间需要快速做个静态展示页面,要求是响应式和较美观。由于时间较短,自己动手写的话也有点麻烦,所以就打算上网找现成的。中途找到了几个页面发现不错,然后就开始思考怎么把页面给下载下来。\小编整理一套Python资料和PDF,有需要Python学习资料可以加学习群:631441315 ,反正闲着也是闲着呢,不如学点东西啦~~由于之前还没有了解过爬虫,自然也就没有想到可以用爬虫来抓取网页内容。所以我采取的办法是:打开ch...

爬虫学习---美丽汤

#coding:utf-8#version: 0.1#note:实现了查找0daydown最新发布的10页资源。import urllib.requestfrom bs4 import BeautifulSoupfor i in range(1,11): url = "http://www.0daydown.com/page/" + str(i) #每一页的Url只需在后面加上整数就行 page = urllib.request.urlopen(url) soup_packtpage = BeautifulSoup(page) page.close() num = " The Page of: " + str(i) #标注当前资源属于第几页 print(num) print("#"*40) for artic...

python:爬虫1——实战(下载一张图片、用Python模拟浏览器,通过在线的有道词典来对文本翻译)【代码】

一、下载一只猫import urllib.requestresponse = urllib.request.urlopen("http://cdn.duitang.com/uploads/item/201111/24/20111124222137_wHYwc.jpg") cat_img = response.read()with open(‘cat_0.jpeg‘, ‘wb‘) as f:f.write(cat_img) urlopen()中的url可以是string,也可以是request object,因此可以是:import urllib.requestreq = urllib.request.Request("http://cdn.duitang.com/uploads/item/201111/24/2011112422213...

爬虫——使用多进程爬取视频数据【代码】【图】

以梨视频为例分析页面请求抓取网页数据。本次抓取梨视频生活分类页面下的部分视频数据,并保存到本地。一、分析网页  打开抓取网页,查看网页代码结构,发现网页结构里面存放视频的地址并不是真正的视频地址。           进入视频详情页面查看后,可以在response中找到真正的视频地址。保存这个地址的并不是标签,而是一个变量,我们使用re来解析这个变量,提取信息。         二、代码实现"""使用多线程爬取梨...

python网络爬虫笔记(九)【图】

4.1.1 urllib2 和urllib是两个不一样的模块 urllib2最简单的就是使用urllie2.urlopen函数使用如下 urllib2.urlopen(url[,data[,timeout[,cafile[,capath[,cadefault[,context]]]]]]) 按照文档urllib2.urlopen可以打开HTTP HTTPS FTP协议的URL链接地址,主演使用HTTP协议,他的参数以ca开头的都是跟身份验证有关,不常使用,data参数是post方法提交URL时使用,常用的是timeout参数,url参数是提交网络地址全称,前端是协议...

Forward团队-爬虫豆瓣top250项目-开发文档【代码】【图】

项目地址:https://github.com/xyhcq/top250 我在本次项目中负责写爬虫中对数据分析的一部分,根据马壮分析过的html,我来进一步写代码获取数据,具体的功能及实现方法我已经写在了注释里:首先,通过访问要爬的网站,并将网站保存在变量里,为下一步数据分析做准备def getData(html):# 分析代码信息,提取数据soup = BeautifulSoup(html, "html.parser")这时,如果我们print soup,是会在窗口上显示出网站的源代码的。 先把第一部...

爬虫进阶篇【代码】【图】

Cookie的使用为什么要使用Cookie呢?Cookie,指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密)比如说有些网站需要登录后才能访问某个页面,在登录之前,你想抓取某个页面内容是不允许的。那么我们可以利用Urllib2库保存我们登录的Cookie,然后再抓取其他页面就达到目的了。在此之前呢,我们必须先介绍一个opener的概念。  1.Opener    当你获取一个URL你使用一个opener(一个urllib...

python 爬虫--同花顺-使用代理

1.http://www.goubanjia.com/ 在上面获取 使用http协议的公网IP和端口 参考:https://blog.csdn.net/qq_23934063/article/details/790639372. 关键代码如下:#python3# coding: utf-8from bs4 import BeautifulSoupimport requestsimport jsonimport timeimport randomcodelist = []for zxcode000 in range(100,999): code000 = ‘000‘ + str(zxcode000) codelist.append(code000)for zhongxiaocode in range(10,100): ...

python 多线程爬虫

最近,一直在做网络爬虫相关的东西。 看了一下开源C++写的larbin爬虫,仔细阅读了里面的设计思想和一些关键技术的实现。1、larbin的URL去重用的很高效的bloom filter算法; 2、DNS处理,使用的adns异步的开源组件; 3、对于url队列的处理,则是用部分缓存到内存,部分写入文件的策略。 4、larbin对文件的相关操作做了很多工作 5、在larbin里有连接池,通过创建套接字,向目标站点发送HTTP协议中GET方法,获取内容,再解析header之类...

爬虫(暂缓更新)【代码】

爬虫:请求网站并爬取数据的自动化程序。基本流程:发起请求:通过 HTTP 库向目标站点发情请求,即发送一个 Request ,请求可包含而外的 headers 等信息,等待服务器的响应;获取响应内容:如服务器能正常响应,会得到一个 Response ,Response 的内容便是想要获取的页面内容,类型可能有 HTML、JSON 字符串、二进制数据(如图片视频等类型);解析内容:得到的内容是 HTML,可用正则表达式、网页解析库进行解析;得到 JSON 可直接...

第一次爬虫练习【代码】

在交互平台打印贴吧内的图片的链接地址 1#coding:utf-8 2 3import re4import urllib //导入库5 6def gethtml(url):7 page=urllib.urlopen(url) //打开链接的页面8 html=page.read()  //读取链接的源码9return html 1011def getimg(html): 12 reg=r‘src="(.*?\.jpg)" size‘ //正则13 imgreg=re.compile(reg)  //编译正则 14 imglist=re.findall(reg,html)  //在源码中查找正则相对应的资源 15return ...

Python爬虫:BeautifulSoup用法总结【代码】【图】

原文BeautifulSoup是一个解析HTML或XML文件的第三方库。HTML或XML文件可以用DOM模型解释。一般包含三种节点:元素节点 - 通常指HTML 或 XML的标签文本节点 - 标签内部的文本内容属性节点 - 每个标签的属性BeautifulSoup库可以对HTML或XML文件解析,查找到一个或多个标签元素,并获取每个标签里的文本和属性。BeautifulSoup很好的特性是它接受一个str或byte对象后会对编码自动检测,并对当前文档编码并转换成Unicode编码。这样可以不...

python爬虫---beautifulsoup(2)

之前我们使用的是python的自带的解析器html.parser。官网上面还有一些其余的解析器,我们分别学习一下。解析器使用方法优点缺点htm.parserBeautifulSoup(markup,‘html.parser‘)1、python自带的2、解析速度过得去3、容错强2.7之前的版本,和3.3之前不包括2.7的都不支持lxml`s HTML parserBeautifulSoup(markup,‘lxml‘)1、非常快2、容错强要安装C语言库lxml`s xml parser BeautifulSoup(markup,[‘lxml‘,‘xml‘])BeautifulSou...

python爬虫 Selenium库学习【代码】

一、自动化测试工具,支持多种浏览器,解决JS渲染问题二、安装pip3 install Selenium三、操作介绍(因为是学习别人的课程为了尊重知识产权,部分代码就不显示了)1驱动浏览器browser = webdriver.Chrome()try:    browser.get(‘www.sina.com‘)#上网 2查找元素 一种方法:browser.find_element_by_name()browser.find_element_by_class_name()browser.find_element_by_id()browser.find_element_by_xpath()browser.find_elemen...