爬虫操作

昨日内容回顾

  • 使用代码模拟登陆

    cookie数据
    # 具体案例:华华手机登陆
    
    
  • json

    主要可以跨语言传输数据(前后端数据交互一般都是使用json)
    
    import json
    序列化
    res = {'username':'jason':'password':123}
    json_str=json.dums(res)
    反序列化
    json_dict = json.loads(res)
    # 大家都使用的默认的语言
    json支持的语言转化:
    
    按住CTRL鼠标左键点击
    
  • 防爬措施

    user-agent   校验请求头中是否有验证是浏览器的数据
    referer		 校验请求是否是自身网站跳转而来的,如果是其他网站的就切断
    ip代理池	   校验同一个ip在时间段内访问网站的次数,如果超过一个限制值进行处理	
    cookie代理池	校验同一个cookie在时间段内访问网站的次数,如果超过一个限制值进行处理
    
  • bs4模块

    更快的筛选查询数据
    pip3 install beautifuisoup4
    解析器
    pip3 install lxml
    
    基本使用
    	form bs4 import BeautifulSoup
        soup=BeautifulSoup(待解析文本,'lxml')
    
  • bs4常见方法

    # 可以直接点标签名
    
    soup.a
    # 第一个a标签
    soup.a.text
    # a标签内的文本
    
    find(name='')
    # 只获取第一个a
    find_all(name='a')
    # 获取所有的a
    
    find_all(id='d1')
    find_all(chass_='c1')
    find_all(attrs={'id':'d1','class':'c1'})
    

今日内容概要

  • bs4模块补充
  • requests-html模块(了解)
  • 爬虫链家二手房数据
  • 爬取天气数据

今日内容详细

bs4模块补充

# CSS选择器
1.如果想通过id查找标签
	#d1		>>>		id='d1'
2.如果想通过class查找标签
	.c1	    >>>      class='c1'
3.查看标签内部的标签(标签可以相互嵌套)
	<div>
    	<p>
        	<a></a>
        </p>
        <a></a>
    </div>
    查找div标签里面所有的后代a标签
    	div a  # 空格表示后代
    查看div标签里面儿子a标签
    	div>a  # >表示儿子

requsets-html模块

1.该模块支持执行js代码,requests模块是不支持的
2.操作更加简单方便
3.与requests模块是同一个作者

下载 
	pip3 install requests-html
基本使用
	>>> from requests_html import session
    # 返回一个Response对象
    >>> r = session.get('https://python.org/')
    # 获取所有链接
    >>> r.html.links
    {'/users/membership/', '/about/gettingstarted/'}
    # 使用css选择器的方式获取某个元素
    >>> about = r.html.find('#about')[0]
    >>> print(about.text)
    About
    Applications
    Quotes
    Getting Started
    Help
    Python Brochure

爬去链家二手房数据

"""
1.在写爬虫程序的时候我们一定要有一个找寻规律的想法
    地区规律
        https://sh.lianjia.com/ershoufang/
        https://bj.lianjia.com/ershoufang/
        https://sz.lianjia.com/ershoufang/
    分页规律
    	https://sh.lianjia.com/ershoufang/
    	https://sh.lianjia.com/ershoufang/pg2/
    	https://sh.lianjia.com/ershoufang/pg3/
    	...
    	https://sh.lianjia.com/ershoufang/pgN/
2.在查找标签的时候我们有两种思路
	1.直接点名道姓的查找具体的标签
		链家网
	2.先获取标签所在的父标签之后再分析
		汽车之家
"""
针对后续我们会学习到的内容pandas模块,如果你想提前使用需要下载两个模块
pip3 install pandas
pip3 install openpyxl

# 代码不要频繁的执行 最好加上人为的延迟
import time
time.sleep(3)

作业

1.自我完成红牛分公司数据爬取
2.完成链家二手房数据爬取(单页)
posted @ 2021-01-19 12:24  KaiLun  阅读(82)  评论(0)    收藏  举报