Python爬虫学习一

这几天发现一个比较适合Python爬虫初学者的网站,我是跟着里边的kingname老师学习,这就当作是一个学习笔记里,有人想去听老师讲课,可以点这里

单线程爬虫

如何伪装成浏览器呢?

import request
header = {'User-Agent':"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36"}
html = request.get(url, header = header)
html.encoding = 'utf-8'

在get或者post的时候加入User-Agent可以伪装成浏览器。至于怎么获得User-Agentchrome->F12->Network->随便点一个接收的信息->Headers->Request Headers

解析HTML,获取有用信息

  1. 正则表达式
    比较笨的办法。适用于网页简单,正则特别好写的情况,不用安装别的库了。
  2. 利用DOM解析HTML
    BeautifulSoup,request啊什么的都提供了一些功能强大的DOM解析方法,便于使用。
  3. 利用XPath解析HTML
    这其实也是DOM解析的一种吧?但是在爬一些比较复杂的网页时候,特别好用。
XPATH

怎么使用XPath?

    from lxml import etree
    selector = etree.HTML(html)
    selector.xpath('XPATH')

XPath怎么写?

    //     :根节点
    /      :往下层寻找
    /text():提取文本内容
    /@attr :提取属性内容

  #提取div的id为first_div的文字内容  
  selector.xpath('//div[@id="first_div"]/text()')
  
  #提取a标签的href属性
  selector.xpath('//a/@href')

多线程爬虫

虽然Python有GIL,但是多线程还是可以在一定程度上提升爬取的速度。

  from multiprocessing.dummy import Pool as ThreadPool
  pools = ThreadPool(__max_core_num__)
  results = pools.map(Spider_function, target_urls)
  pools.join()
  pools.close()

map(func, seq)函数是Python内置函数,用来接收seq内元素依此执行func后返回的值。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 其实node.js也可以做爬虫,相信前端的同学已经有所了解,但今天我们要讲的是如何用python,python实现...
    我是上帝可爱多阅读 2,738评论 0 3
  • 课程目标 爬取百度百科Python词条相关多个页面的词条和简述 并将数据以表格的形式保存成html 程序包含五个模...
    牵丝笼海阅读 3,240评论 0 2
  • 1 前言 作为一名合格的数据分析师,其完整的技术知识体系必须贯穿数据获取、数据存储、数据提取、数据分析、数据挖掘、...
    whenif阅读 18,158评论 45 523
  • 我小时候的愿望是当一名记者,多少有点匹夫有责的志向。后来我爱上了李志,没错,就是那个金坛李志。我听着“我们生...
    小狮子被注册了阅读 2,994评论 0 1
  • 文/邱焰 他把黑色的咖啡灌入肚中,这已经是今天他喝下的第五杯了。轻轻揉了揉额头,纤长好看的手指又继续握着笔,手背上...
    NEKO邱焰阅读 2,372评论 0 0