【Python】爬虫小结
来源:互联网 发布:淘宝第三方促销平台 编辑:程序博客网 时间:2024/06/05 15:01
1.获取页面源代码
1.1获取http类型的页面源代码
- import time,os,cookielib,urllib2,urllib
- import datetime,StringIO,gzip
- def getHtml(url,referurl=None,cookie=None,postdata=None,ip=None):
- cookie_support= urllib2.HTTPCookieProcessor(cookielib.CookieJar())#伪装cookies
- if ip:
- proxy_support = urllib2.ProxyHandler({'http':ip})#代理
- opener = urllib2.build_opener(proxy_support, cookie_support, urllib2.HTTPHandler)
- urllib2.install_opener(opener)
- else:
- opener = urllib2.build_opener( cookie_support, urllib2.HTTPHandler)
- urllib2.install_opener(opener)
- headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:19.0) Gecko/20100101 Firefox/19.0'}#伪装浏览器
- req = urllib2.Request(url,headers = headers)
- if referurl:
- req.add_header('referer',referurl)
- if cookie:
- req.add_header('Cookie', cookie)
- if postdata:
- try:
- req.add_data(urllib.urlencode(postdata))
- except:
- req.add_data(postdata)
- content=urllib2.urlopen(req,timeout=120).read()
- try:
- gzp_content = StringIO.StringIO(content)
- gzipper = gzip.GzipFile(fileobj =gzp_content)
- content =gzipper.read()
- except:
- 1
- return content
1.2获取https类型的页面源代码
- import pycurl,StringIO
- def getHtml(url):
- c=pycurl.Curl()
- c.setopt(c.URL, url)
- b = StringIO.StringIO()
- c.setopt(c.WRITEFUNCTION, b.write)
- c.setopt(c.COOKIEFILE, '')
- c.setopt(pycurl.USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)")
- c.setopt(c.HTTPHEADER, ['Accept: text/html', 'Accept-Charset: UTF-8'])
- c.setopt(c.SSL_VERIFYPEER, 0)
- c.setopt(c.SSL_VERIFYHOST, 0)
- c.setopt(c.FOLLOWLOCATION, 1)
- c.setopt(c.HEADER,False)
- c.perform()
- html=b.getvalue()
- b.close()
- c.close()
- return html
2.抓取带JS的页面信息(下拉加载,点击加载等)
2.1用firebug中的XHR分析出所需内容真正的url,再用该url请求需要的内容
2.2对应的url有的很长,可以试着不断裁短,只要内容不变就好
3.截取需要的内容
3.1若返回的是json格式的内容,可以用json.loads(html)将内容转成字典来操作并截取内容
3.2若返回的内容是html格式的内容,可以用beautifulsoup, lxml.etree,re来截取内容
4.应对IP被封的方法
4.1 使用UA伪装成浏览器进行访问
4.2 延长每次爬取的时间间隔
4.3 使用代理IP进行爬取
5.常用的编码与解码方法
1 0
- 【Python】爬虫小结
- python爬虫方法小结
- 【Python】爬虫小结
- python爬虫小结
- Python爬虫爬取知乎小结
- Python爬虫爬取知乎小结
- Python爬虫爬取知乎小结
- python爬虫知识小结
- python 爬虫小结
- python爬虫模块小结
- Python爬虫爬取知乎小结
- Python爬虫小结之Selenium
- Python: 爬虫方法小结[待更新!!!]
- python爬虫-->爬虫基础
- [爬虫] Python爬虫技巧
- Python爬虫
- python 爬虫
- python 爬虫
- UICollectionViewLayout的使用
- Hbase的table存储详解
- 判断单选框是否选中
- Android系统中的.apk文件和dex文件
- bootstrap简介
- 【Python】爬虫小结
- NOIP 2012 开车旅行
- xshell添加按钮。
- HDU 2021 发工资咯:)
- Android之网络丢包事件
- Android焦点分发基础
- RestFul WebService的创建和使用实例
- MySQL详解--锁
- Jprofile(三) - 查看线程CPU耗时