网内网速不太理想,下载速度很慢,所以不建议使用命令行输入pip install scrapy下载安装,建议使用离线安装。
1.安装scrapy库之前要先下载lxml,wheel,pywin32和twisted四个库。这四个库的安装就不进行演示了,安装方法都一样,举一反三,下载适合自己python版本的安装包。
下载地址:下载安装包
2.下载成功后找到改安装包的路径,我将安装包放在了桌面上,然后打开命令提示符输入(pip install [这里是文件路径+文件名称])
pip3 install C:\User\XXXX\Desktop\Scrapy-2.2.1-py3-none-any.whl
1.从pycharm中打开我们的终端
2.创建Scrapy框架项目(scrapy startproject [项目名])
scrapy startproject jobscrapy
3.进入项目目录,生成爬虫程序(scrapy genspider [爬虫名] [爬取域])
scrapy genspider jd www.jd.com
scrapy crawl jd
5.如果启动过程中日志信息过多,可以通过设置减少日志信息
再运行爬虫:
6.从获取的网页源码中筛选出我们需要的数据
7.创建一个Scrapy爬虫程序快速启动方式
# 启动爬虫程序
from scrapy.cmdline import execut
# 执行
execute(["scrapy","crawl","jd"
jd.py
#导入scrapy
import scrapy
# 创建爬虫类 并且继承scrapy.Spider --> 最基础的类 另外几个类都是继承自这个类
class JdSpider(scrapy.Spider):
name = 'jd' #爬虫名字 --》 必须唯一
allowed_domains = ['search.51job.com'] #允许采集的域名
start_urls = ['https://search.51job.com/list/000000,000000,0000,32,9,99,'
'%25E8%25BD%25AF%25E4%25BB%25B6%25E5%25B7%25A5%25E7%25A8%258B%25E5%25B8%2588,'
'2,1.html?lang=c&postchannel=0000&workyear=99&cotype=99°reefrom=99&jobterm=99&companysize=99'
'&ord_field=0&dibiaoid=0&line=&welfare='] #开始采集的网站
# 解析响应数据 提取数据 或者网址等 response就是网页源码
def parse(self, response):
# 提取数据
r = response.xpath("//div[@class='el']") #选择标签
for a in r:
position = a.xpath("./p/span/a/text()") # 职位 .代表在当前节点下继续选择 和 selectors
company = a.xpath("./span[@class='t2']/a/text()") # 公司
address = a.xpath("./span[@class='t3']/text()") # 地址
salary = a.xpath("./span[@class='t4']/text()") # 薪水
time = a.xpath("./span[@class='t5']/text()") # 时间
# extract()和extract_first()都是从对象中获取数据
if position.extract_first() is not None and company.extract_first() is not None and address.extract_first() is not None and salary.extract_first() is not None and time.extract_first() is not None:
position = position[0].extract().strip()
company = company[0].extract().strip()
address = address[0].extract().strip().split("-")[0] # "深圳-南山区" 只获取上级市
salary = salary[0].extract().strip()
time = time[0].extract().strip()
# 打印输出
print(position, company, address, salary, time)
execute.py
# 启动爬虫程序
from scrapy.cmdline import execut
# 执行
execute(["scrapy","crawl","jd"])
转载请注明出处