您好,登录后才能下订单哦!
这篇文章主要介绍“怎么用python扒网页”,在日常操作中,相信很多人在怎么用python扒网页问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用python扒网页”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
python爬虫网页的基本流程:
首先选取一部分精心挑选的种子URL。
将这些URL放入待抓取URL队列。
从待抓取URL队列中读取待抓取队列的URL,解析DNS,并且得到主机的IP,并将URL对应的网页下载下来,存储进已下载网页库中。此外,将这些URL放进已抓取URL队列。
分析已抓取URL队列中的URL,从已下载的网页数据中分析出其他URL,并和已抓取的URL进行比较去重,最后将去重过的URL放入待抓取URL队列,从而进入下一个循环。
1、HTTP请求实现
使用urllib2/urllib实现:
urllib2和urllib是Python中的两个内置模块,要实现HTTP功能,实现方式是以urllib2为主,urllib为辅。
urllib2提供一个基础函数urlopen,通过向指定的URL发出请求来获取数据。最简单的形式是:
import urllib2response=urllib2.urlopen('http://www.zhihu.com')html=response.read()print html
其实可以将上面对http://www.zhihu.com的请求响应分为两步,一步是请求,一步是响应,形式如下:
import urllib2
# 请求
request=urllib2.Request('http://www.zhihu.com')
# 响应
response = urllib2.urlopen(request)
html=response.read()
print html
还有post请求实现:
import urllibimport urllib2url = 'http://www.xxxxxx.com/login'postdata = {'username' : 'qiye', 'password' : 'qiye_pass'}# info 需要被编码为urllib2能理解的格式,这里用到的是urllibdata = urllib.urlencode(postdata)req = urllib2.Request(url, data)response = urllib2.urlopen(req)html = response.read()
将上面的例子改写一下,加上请求头信息,设置一下请求头中的User-Agent域和Referer域信息。2、请求头headers处理
import urllibimport urllib2url = 'http://www.xxxxxx.com/login'user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'referer='http://www.xxxxxx.com/'postdata = {'username' : 'qiye', 'password' : 'qiye_pass'}# 将user_agent,referer写入头信息headers={'User-Agent':user_agent,'Referer':referer}data = urllib.urlencode(postdata)req = urllib2.Request(url, data,headers)response = urllib2.urlopen(req)html = response.read()
urllib2对Cookie的处理也是自动的,使用CookieJar函数进行Cookie的管理。如果需要得到某个Cookie项的值,可以这么做:3、Cookie处理
import urllib2
import cookielib
cookie = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie))
response = opener.open('http://www.zhihu.com')
for item in cookie:
print item.name+':'+item.value
但是有时候会遇到这种情况,我们不想让urllib2自动处理,我们想自己添加Cookie的内容,可以通过设置请求头
import urllib2
opener = urllib2.build_opener()
opener.addheaders.append( ( 'Cookie', 'email=' + "xxxxxxx@163.com" ) )
req = urllib2.Request( "http://www.zhihu.com/" )
response = opener.open(req)
print response.headers
retdata = response.read()
到此,关于“怎么用python扒网页”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。