为了账号安全,请及时绑定邮箱和手机立即绑定

Python开发简单爬虫

蚂蚁帅帅 全栈工程师
难度初级
时长 1小时14分
学习人数
综合评分9.67
646人评价 查看评价
9.9 内容实用
9.6 简洁易懂
9.5 逻辑清晰
  • import urllib2
    response = urllib2.urlopen('http://www.baidu.com')
    print response.getcode()
    cont = response.read()


    查看全部
  • 非常实用。


    查看全部
  • 爬虫架构图

    查看全部
  • """
    对于意一些使用 User-Agent 技术反爬的公司
    应该在 url 里,加上 header 里的 User-Agent
    """
    
    import urllib.request  # 导入模块
    
    header = {
        'Referer': 'http://www.sse.com.cn/assortment/stock/list/share/'
    }
    # 创建 Request 的对象
    url = 'http://query.sse.com.cn/security/stock/getStockListData2.do?&jsonCallBack=jsonpCallback96332&isPagination=true&stockCode=&csrcCode=&areaName=&stockType=1&pageHelp.cacheSize=1&pageHelp.beginPage=1&pageHelp.pageSize=25&pageHelp.pageNo=2&pageHelp.endPage=21&_=1522509003629'
    req = urllib.request.Request(url, headers=header)
    
    # 使用 urllib.request.urlopen() 的方法下载网页
    response = urllib.request.urlopen(req)
    
    
    # 读取状态码,如果是 200 表示获取成功
    print(response.getcode())
    
    # 读取内容
    # cont = response.read()      # 这样读取的内容为 byte 形式
    cont = response.read().decode()  # 将 byte 解码为 string
    print(cont)


    查看全部
  • import urllib.request as urllib  # 导入 urllib.request 模块
    
    # 使用 urllib.urlopen() 的方法下载网页
    response = urllib.urlopen("https://www.baidu.com")  # 直接请求网页
    
    # 读取状态码,如果是 200 表示获取成功
    print(response.getcode())
    
    # 读取内容
    # cont = response.read()      # 这样读取的内容为 byte 形式
    cont = response.read().decode()  # 将 byte 解码为 string
    print(cont)


    查看全部
  • from baike_spider import url_manager, html_downloader, html_parser, html_outputerclass SpiderMain(object):	def __init__(self):		self.urls = url_manager.UrlManger()		self.downloader = html_downloader.HtmlDownloader()		self.parser = html_parser.HtmlParser()		self.outputer = html_outputer.HtmlOutputer()	def craw(self, root_url):		count = 1		self.urls.add_new_url(root_url)		while self.urls.has_new_url():			try:				new_url = self.urls.get_new_url()				print '[INFO] craw %d : %s' % (count, new_url)				html_count = self.downloader.download(new_url)				new_urls, new_data = self.parser.parse(new_url, html_count)				self.urls.add_new_urls(new_urls)				self.outputer.collect_data(new_data)				if count == 600:					break				count = count + 1			except:				print '[ERROR] craw failed, in spider_main:: craw()'		self.outputer.output_html()if __name__ == '__main__':	root_url = "http://baike.baidu.com/view/21087.htm"	obj_spider = SpiderMain()	obj_spider.craw(root_url)


    查看全部
    0 采集 收起 来源:调度程序

    2018-10-08

  • URL管理器实现方式


    查看全部
  • URL管理器


    查看全部
  • 简单爬虫架构——运行流程


    查看全部
  • 简单爬虫架构


    查看全部
  • python网页下载器:

    urllib2---官方基础模块

    requests---更强大模块

    查看全部
  • # -*- coding: utf-8 -*-
    """
    @author:lee
    @create_time:2018/9/26 10:23
    """
    import urllib.request
    url = 'http://www.baidu.com'
    print('第一方法')
    response1 = urllib.request.urlopen(url)
    print(response1.getcode())
    print(len(response1.read()))
    
    #2
    print('第二种方法:伪装浏览器')
    request = urllib.request.Request(url)
    request.add_header('user-agent','Mozilla/5.0')
    response2 = urllib.request.urlopen(url)
    print(response2.getcode())
    print(len(response2.read()))
    
    print('第三种方法,cookie处理')
    import http.cookiejar
    cj = http.cookiejar.CookieJar()
    opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj))
    urllib.request.install_opener(opener)
    response3 = urllib.request.urlopen(url)
    print(response3.getcode())
    print(len(response3.read()))


    查看全部
  • 第三种方法

    查看全部
  • 前两种方法

    查看全部
  • Python3 中引入urlparse:

        

    from urllib.parse import urlparse


    查看全部

举报

0/150
提交
取消
课程须知
本课程是Python语言开发的高级课程 1、Python编程语法; 2、HTML语言基础知识; 3、正则表达式基础知识;
老师告诉你能学到什么?
1、爬虫技术的含义和存在价值 2、爬虫技术架构 3、组成爬虫的关键模块:URL管理器、HTML下载器和HTML解析器 4、实战抓取百度百科1000个词条页面数据的抓取策略设定、实战代码编写、爬虫实例运行 5、一套极简的可扩展爬虫代码,修改本代码,你就能抓取任何互联网网页!

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!