创建新的spider步骤
1、创建项目:scrapy startproject renren
2、进入目录创建新爬虫:scrapy genspider renren_spider renren.com
3、settings.py配置爬虫机器人规则ROBOTSTXT_OBEY为False
4、settings.py配置协议头信息DEFAULT_REQUEST_HEADERS中添加User-Agent信息
5、项目下创建启动页start_renren.py
from scrapy.cmdline import execute
execute("scrapy crawl renren_spider".split(' '))
登录验证的API推荐
- 滑动验证码破解平台:http://api.4xx3.cn/
- 云打码:http://www.yundama.com/price.html
- 超级鹰:http://www.chaojiying.com/cases.html
如何发送登录表单
由于是表单,必须发送一个Post请求,因此创建FromRequest请求,并且设置登录成功后要执行的方法
class JsSpider(scrapy.Spider):
name = 'js'
allowed_domains = ['renren.com']
# 起始地址为登录页面, 登录成功后在进行爬取操作
start_urls = ['http://www.renren.com/SysHome.do']
def parse(self, response):
# 1: 返回的是登录页面的数据
# 2: 创建表单,并且填写正确的账户的密码
loginForm = {
'email': '970138074@qq.com',
'password': 'pythonspider',
}
return scrapy.FormRequest(url="http://www.renren.com/PLogin.do",formdata=loginForm,callback=self.after_login)
def after_login(self,reponse):
with open('books.html', 'w+',encoding="UTF-8") as f:
f.write(reponse.text)
如果登录成功则会执行after_login方法,此方法会把登录成功之后的页面下载到本地,下载时设置的编码取决于目标网页的编码
