总结:
1.爬虫最主要的功能是抓取网页.我们希望可以等到html,然后去解析得到其中自己想要的信息.
2.反爬虫 的主要措施:
- ip地址的审核
- user_agent的验证
- 访问的频率
- refence的验证
- 强制登录
- 动态加载
3.因此,为了我们可以不被这些措施所阻隔,需要一些技术,来进行处理来得到我们需要的信息.
因此,我们需要请求网页,ua模拟,ip代理,模拟登录等步骤来进行学习和应用,来得到我们需要的信息.
一.请求网页数据
1. 发起请求
import requsets
#请求的网址
url='http://www.douban.com'
#请求
data=requests.get(url)
#响应的主体内容
print(data.text)
2. 响应内容
#响应的状态信息
print(data.status_code)
#响应的头部信心
print(data.headers)
二、设置UA进行伪装
1.自己编写
2.使用fake_useragent
from fake_useragent import UserAgent
ua = UserAgent()
#ie浏览器
user agent
print(ua.ie)
#opera浏览器
print(ua.opera)
#chrome浏览器
print(ua.chrome)
#firefox浏览器
print(ua.firefox)
#safri浏览器
print(ua.safari)
#最常用的方式
#写爬虫最实用的是可以随意变换headers,一定要有随机性。支持随机生成请求头
print(ua.random)
print(ua.random)
print(ua.random)
三、网页解析
1.BeautifulSoup解析
2.find检查
四、数据的储存
import pandas as pd
五、使用代理
使用sock进行代理,在进行爬虫ip代理时,我只需要设置把端口号设置为你本机代理的端口地址。我是使用本机的127.0.0.1:1080进行代理。
因此
import requsets
pro={'https':'https://127.0.0.1:1080',
...: 'http':'http://127.0.0.1:1080'}
url='www.google.com'
re=requests.get(url,proxies=pro)
六、模拟登陆
1.在浏览器登陆之后,打开>>>开发者工具,>>>network,复制
a='' #复制的cookies
headers={'User-Agent':ua.chrome,'Cookie':a}
url='' #登陆之后的网址
data=requests.get(url,headers=headers)
七、动态内容的加载
下载一个ChromeDriver或GeckoDriver。根据自己浏览器的版本选择合适的驱动器
1.安装python的库selenium
url='http://www.baidu.com' #网址必须是要全否则会报错误
from selenium import webdriver
driver=webdriver.chrome(“chromedriver的位置”)
drvier.get(url)
html=driver.page_source
2.当自己的网址没加htttp时,会报错误
WebDriverException: Message:
unknown error:
unhandled inspector error:
{"code":-32000,"message":"Cannot navigate to invalid URL"}
(Session info: chrome=71.0.3578.98)
(Driver info: chromedriver=2.45.615291 (ec3682e3c9061c10f26ea9e5cdcf3c53f3f74387),
platform=Windows NT 10.0.17134 x86_64)
总结:
1.爬虫最主要的功能是抓取网页.我们希望可以等到html,然后去解析得到其中自己想要的信息.
2.反爬虫 的主要措施:
- ip地址的审核
- user_agent的验证
- 访问的频率
- refence的验证
- 强制登录
3.因此,为了我们可以不被这些措施所阻隔,需要一些技术,来进行处理来得到我们需要的信息.