Python 爬虫知识点
一、基础知识
1、HTML分析
2、urllib爬取
导入urilib包(Python3.5.2)
3、urllib保存网页
import urllib.request
url = "http://www.cnblogs.com/wj204/p/6151070.html"
html = urllib.request.urlopen(url).read()
fh=open("F:/20_Python/3000_Data/2.html","wb")
fh.write(html)
fh.close()
4、模拟浏览器
import urllib.request
url="http://www.cnblogs.com/"
headers=("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.22 Safari/537.36 SE 2.X MetaSr 1.0")
opener=urllib.request.build_opener()
opener.addheaders=[headers]
data=opener.open(url).read()
fh=open("F:/20_Python/3000_Data/1.html","wb")
fh.write(data)
fh.close()
5、urllib保存图片
使用 http://www.bejson.com/ 查看存储在JS中的Json数据g_page_config
import re
import urllib.request
keyWord = "Python机器学习"
keyWord2 = urllib.request.quote(keyWord)
headers = ("User-Agent","MMozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.104 Safari/537.36 Core/1.53.1708.400 QQBrowser/9.5.9635.400")
opener = urllib.request.build_opener()
opener.addheaders = [headers]
urllib.request.install_opener(opener)
url = "https://s.taobao.com/search?q=" + keyWord2 + "&imgfile=&commend=all&ssid=s5-e&search_type=item&sourceId=tb.index&spm=a21bo.50862.201856-taobao-item.1&ie=utf8&initiative_id=tbindexz_20161214"
data = urllib.request.urlopen(url).read().decode("utf-8","ignore")
pat = 'pic_url":"//(.*?)"'#注意,该数据不在Html代码之中,在全局脚本g_page_config
imageList = re.compile(pat).findall(data)
for j in range(0,len(imageList)):
try:
curImage = imageList[j]
curImageUrl = "http://" + curImage
file="F:/20_Python/3000_Data/" + str(j) + ".jpg"
print(file)
urllib.request.urlretrieve(curImageUrl,filename=file)
except urllib.error.URLError as e:
if hasattr(e,"code"):
print(e.code)
if hasattr(e,"reason"):
print(e.reason)
except Exception as e:
print(e)
6、正则表达式
常用正则表达式爬取网页信息及分析HTML标签总结 http://blog.csdn.net/eastmount/article/details/51082253
如对Python机器学习的正则分析:
pat = 'pic_url":"//(.*?)"'
re.compile(pat).findall(data) 提取(.*?),位于pic_url":"//和"之中

如对糗事百科的正则分析:
pat='<div class="content">.*?<span>(.*?)</span>.*?</div>'
datalist=re.compile(pat,re.S).findall(pagedata)

7、IP代理
需要靠谱稳定的IP地址,找到合适的代理替换 proxy_addr
import urllib.request
import random
def use_proxy(url,proxy_addr):
proxy=urllib.request.ProxyHandler({"http":random.choice(proxy_addr)})
headers = ("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.22 Safari/537.36 SE 2.X MetaSr 1.0")
opener=urllib.request.build_opener(proxy,urllib.request.HTTPHandler)
opener.addheaders = [headers]
urllib.request.install_opener(opener)
data=urllib.request.urlopen(url).read().decode("utf-8","ignore")
return data
proxy_addr=["45.64.166.142:8080","80.1.116.80:80","196.15.141.27:8080","47.88.6.158:8118","125.209.97.190 :8080"]
url="http://cuiqingcai.com/1319.html" #http://proxy.com.ru
data=use_proxy(url,proxy_addr)
print(len(data))
8、抓包分析
9、多线程爬取
import threading class DownPage(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
def run(self):
print("处理下载业务业务") downTask = DownPage()
downTask.start()
10、异常处理
见:urllib保存图片,使用try:except:捕获异常
11、XPath
http://www.cnblogs.com/defineconst/p/6181333.html
二、Scrapy安装关联包
PyCharm---》File---》Settings---》Project..........

Python 爬虫知识点的更多相关文章
- python爬虫知识点详解
		
python爬虫知识点总结(一)库的安装 python爬虫知识点总结(二)爬虫的基本原理 python爬虫知识点总结(三)urllib库详解 python爬虫知识点总结(四)Requests库的基本使 ...
 - Python爬虫知识点四--scrapy框架
		
一.scrapy结构数据 解释: 1.名词解析: o 引擎(Scrapy Engine)o 调度器(Scheduler)o 下载器(Downloader)o 蜘蛛(Spiders)o 项目管 ...
 - Python 爬虫知识点 - 淘宝商品检索结果抓包分析(续一)
		
通过前一节得出地址可能的构建规律,如下: https://s.taobao.com/search?data-key=s&data-value=44&ajax=true&_ksT ...
 - python爬虫知识点总结(八)Selenium库详解
		
官方学习文档:http://selenium-python.readthedocs.io/api.html 一.什么是Selenium? 答:自动化测试工具,支持多种浏览器.用来驱动浏览器,发出指令让 ...
 - python爬虫知识点总结(一)库的安装
		
环境要求: 1.编程语言版本python3: 2.系统:win10; 3.浏览器:Chrome68.0.3440.75:(如果不是最新版有可能影响到程序执行) 4.chromedriver2.41 注 ...
 - Python爬虫知识点一
		
一.入门知识: 1.1.HTTP简介HTTP = HyperText Transfer ProtocolURI = Uniform Resource IdentifierURL = Uniform R ...
 - Python 爬虫知识点 - 淘宝商品检索结果抓包分析(续二)
		
一.URL分析 通过对“Python机器学习”结果抓包分析,有两个无规律的参数:_ksTS和callback.通过构建如下URL可以获得目标关键词的检索结果,如下所示: https://s.taoba ...
 - Python 爬虫知识点 - 淘宝商品检索结果抓包分析
		
一.抓包基础 在淘宝上搜索“Python机器学习”之后,试图抓取书名.作者.图片.价格.地址.出版社.书店等信息,查看源码发现html-body中没有这些信息,分析脚本发现,数据存储在了g_page_ ...
 - python爬虫知识点总结(六)BeautifulSoup库详解
		
官方学习文档:https://www.crummy.com/software/BeautifulSoup/bs4/doc.zh/ 一.什么时BeautifulSoup? 答:灵活又方便的网页解析库,处 ...
 
随机推荐
- Ribbon重试机制与Hystrix熔断机制的配置问题
			
Ribbon超时与Hystrix超时问题,为了确保Ribbon重试的时候不被熔断,我们就需要让Hystrix的超时时间大于Ribbon的超时时间,否则Hystrix命令超时后,该命令直接熔断,重试机制 ...
 - LeetCode: ZigZag Conversion 解题报告
			
ZigZag ConversionThe string "PAYPALISHIRING" is written in a zigzag pattern on a given num ...
 - Android几种layout(布局)的区别
			
1.FrameLayout:children按照从左上开始的顺序排列,主要用于tabed view或者图片切换功能:最简单的布局模型,在这种布局下每个添加的子控件都被放在布局的左上角,并覆盖在前一子控 ...
 - SQLAlchemy数据库连接和初始化数据库
			
查看版本 >>> import sqlalchemy >>> sqlalchemy.__version__ '1.0.9' 创建连接 from sqlclachem ...
 - jsp版ueditor图片在线管理返回绝对路径
			
引用:http://zhengyunfei.iteye.com/blog/2149979 如果你有富文本编辑器的功能需要开发,我推荐你用百度的ueditor.本文将与你分享jsp版ueditor开发中 ...
 - Gtest创建第一个测试
			
gtest测试框架是在不同平台上(Linux,Mac OS X,Windows,Cygwin,Windows CE和Symbian)为编写C++测试而生成的.它是基于xUnit架构的测试框架,支持自动 ...
 - mongodb常见管理命令
			
----------1.复制数据库 wind:PRIMARY> show dbs; jinri 0.078GB local 1.078GB test 0.078GB wind 0.078GB w ...
 - 【WPF】XAML实现按钮背景图片的点击切换
			
原因:要做一组搜索结果的排序按钮(类似一组RadioButton),效果像下图这样.想法是使用原生的按钮控件,将文字左对齐,整个按钮背景是一张图片,通过样式Trigger控制字体变色.背景图切换. 需 ...
 - 【WPF】弹窗定位、弹窗关闭后再打开的报错
			
需求:点击按钮,打开一个弹窗. // 获得窗体实例 Window window = openDesignViewModel.View as Window; // 这是使用了WAF框架 //Window ...
 - elasticsearch介绍
			
elasticsearch是一个基于lucene所编写的分布式的搜索引擎,能够达到实时搜索,稳定高效. 我所了解的elasticsearch有下面这些特点 1 配置简单,对于初学者来说几乎是下载后零配 ...