您的位置:首页 > 其它

BeautifulSoup/Scrapy/Selenium爬虫框架的不同和使用方法

2020-06-05 08:34 267 查看

记录一下几个爬虫框架的区别和使用方法:

Request & BeautifulSoup

最简单基础

使用方法

import requests
from bs4 import BeautifulSoup

for page in range(20):
url = 'https://www.网址.com/'.format(page)
req = requests.get(url)
html = req.text
soup = BeautifulSoup(html, 'lxml')

然后写一个for循环,用.select()或.find_all()实现CSS选择器,例如:

for article in soup.select('.article'):
joke = article.select('a.contentHerf .content span')[0].string#从列表中第一个元素提取字符串
likes = article.select('.stats .stats-vote .number')[0].string
if joke is not None and int(likes)>1000:
print(joke, likes)

Scrapy

适用于静态刷新网站,如网易新闻。已经给出简单的框架结构,方便使用

官方文档
https://docs.scrapy.org/en/latest/

项目文件
引擎(Scrapy Engine)
调度器(Scheduler)
下载器(Downloader)
蜘蛛(Spiders)
项目管道(Item Pipeline)

使用方法

  1. 进入要存储代码的目录 (命令行下) 然后输入
    scrapy startproject tutorial
  2. 在项目根目录运行
    scrapy genspider 项目名 网址
    例如:
    scrapy genspider quotes quotes.toscrape.com
    然后会在spider文件夹中自动生成如下文件
  3. 可以在各个文件中增添自己需要做的操作(注意:不同spider的name不能相同)

spider里需要import的基本内容

from scrapy.linkextractors import LinkExtractor
from scrapy.spiders import CrawlSpider,Rule
  1. 运行:进入 根目录输入
    scrapy crawl quotes

如果使用pycharm运行,可以在根目录新建一个py文件,输入下面代码后运行

from scrapy import cmdline
cmdline.execute('scrapy crawl 项目名'.split())

Selenium

适用于动态刷新网站,比如淘宝。但爬取速度较慢,配置有点麻烦

配置
Chrome浏览器
chromedriver.exe
pip install selenium
pip install pyquery

官方文档
http://selenium-python.readthedocs.io/index.html

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: