-
分析目标查看全部
-
开发爬虫实例: 一、步骤 1、确定目标:确定抓取哪个网站的哪些网页的哪部分数据。本实例确定抓取百度百科python词条页面以及它相关的词条页面的标题和简介。 2、分析目标:确定抓取数据的策略。一是分析要抓取的目标页面的URL格式,用来限定要抓取的页面的范围;二是分析要抓取的数据的格式,在本实例中就是要分析每一个词条页面中标题和简介所在的标签的格式;三是分析页面的编码,在网页解析器中指定网页编码,才能正确解析。 3、编写代码:在解析器中会使用到分析目标步骤所得到的抓取策略的结果。 4、执行爬虫。查看全部
-
爬虫查看全部
-
简单爬虫架构-运行流程查看全部
-
简单的爬虫结构查看全部
-
简单爬虫架构查看全部
-
网络爬虫课程介绍:课程内容:查看全部
-
运行流程查看全部
-
爬虫架构查看全部
-
url管理器:管理待爬取的url集合和已经爬取得url集合查看全部
-
soup=BeautifulSoup(html_doc,'html.parser',from_encoding = 'utf-8') print 'all_link' links = soup.find_all('a') for link in links: print link.name,link['href'],link.get_text() print 'only_lacie' link2 = soup.find('a',href='http://example.com/lacie') print link2.name,link2['href'],link2.get_text() print 'regular' link2 = soup.find('a',href=re.compile(r"ill")) print link2.name,link2['href'],link2.get_text() print 'get_p' p_node = soup.find('p',class_ = "title") print p_node.name,p_node.get_text()查看全部
-
import urllib2, cookielib url = 'http://www.baidu.com' print '111111111111111' re1=urllib2.urlopen(url) print re1.getcode() cont = re1.read() #print cont print len(re1.read()) print '22222222222222222' request = urllib2.Request(url) request.add_header('User-Agent', 'Mozilla/5.0') re2=urllib2.urlopen(url) print re2.getcode() cont2 = re2.read() #print cont2 print len(re2.read()) print '333333333333333333' cj=cookielib.CookieJar() opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj)) urllib2.install_opener(opener) re3=urllib2.urlopen(url) print re3.getcode() cont3 = re3.read() #print cont3 print cj print len(re3.read())查看全部
-
登陆,代理,加密,自动跳转 遇到特殊情景时需要添加特殊情景处理器 1、需要用户登录才能访问的网页。添加cookie处理,使用HTTPCookieProcessor。 2、需要代理才能访问的网页。使用ProxyHandler。 3、协议使用HTTPS加密访问的网页。使用HTTPSHandler。 4、URL相互自动跳转的网页。使用HTTPRedirectHandler。 将以上这些Handler传送给urllib2的build_opener(Handler)方法,生成一个opener对象。 然后向urllib2中install_opner(opner)这个opener,这样urllib2模块就具有了这些场景的处理能力。 最后用urlopen()方法请求一个url或请求一个request,来实现网页的下载。 代码:增强cookie处理 import urllib2, cookielib #创建cookie容器 cj=cookielib.CookieJar() #创建1个opener opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj)) #给urllib2安装opener urllib2.install_opener(opener) #使用带cookie的urllib2访问网页 response = urllib2.urlopen("http://www.baidu.com/")查看全部
-
------------------------------------------------------------ 增强处理,添加data、http header.步骤如下: 1)添加一个header,可以向服务器提交http的头信息; 添加一个data,可以向服务器提交需要用户输入的数据 2)把三个参数url、data、header 传送给urllib2的Request类,生成一个request对象 3)再以request作为参数把内容传送给urlopen()对象 ----------P2----------- import urllib2 request = urllib2.Request('http://www.baidu.com') request.add_data('a','1') request.add_header('User-Agent', 'Mozilla/5.0') response = urllib2.urlopen(request) ----------P3----------- import urllib.request request = urllib.request.Request('http://www.baidu.com') urllib.request.data = ('a','1') request.add_header('User_Agent','Mozilla/5.0') response = urllib.request.urlopen(request) 此方法最终效果与第一种一致,都是下载了一个URL指向的网页上的内容 但方法二可以做更多的事:比如向服务器发送信息; 通过提供http头信息来伪装成某个浏览器(增大访问网页的成功概率)查看全部
-
最简洁的: 给定一个URL,将其传送给urllib2模块的urlopen(url)方法, 以url作为参数,发送网页请求。返回的内容传送给response对象。 ----------P2----------- import urllib2 #直接请求 response=urllib2.urlopen('http://www.baidu.com') #获取状态码,为200就成功 print response.getcode() #读取内容 cont = response.read() print cont ----------P3----------- import urllib.request url = 'http://www.baidu.com' re = urllib.request.urlopen(url) print(re.getcode()) html = re.read().decode('utf8') print(html)查看全部
举报
0/150
提交
取消