python爬虫之requests+BeautifulSoup+pymongo

python爬虫之requests+BeautifulSoup+pymongo

python模块安装

打开IED,新建项目,点击下方的终端,如图:

输入如下命令,其中pymongo是与mongoDB数据库连接的模块

pip install requests
pip install BeautifulSoup4
pip install pymongo
mongoDB数据库

这里我们使用docker容器技术,先在服务器上拉取mongo镜像

sudo docker pull mongo

以守护态形式运行容器,并将端口暴露给宿主机

sudo docker run -p 27018:27017 -d mongo

进入容器

sudo docker exec -it 容器ID /bin/bash

查看mongo数据库是否运行,如何进入数据库里面,说明数据已经启动

mongo

退出容器

Ctrl+p Ctrl+Q

安装mongoUI客户端

点击这里安装

客户端连接mongo数据库,如图,输入服务器的ip地址与端口

爬取车辆配件信息并存到mongo数据库

打开IDE,项目中新建一个car.py文件,输入如下代码:

# coding:utf-8
# 爬取车辆配件信息
import requests
from bs4 import BeautifulSoup
import pymongo

# 爬取网址
url = 'http://www.qichepeijian.com/pj.html'
# 用户代理
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36'}
proxies = { "http": "http://172.17.30.100:50080", "https": "http://172.17.30.100:50080"}
r = requests.get(url, headers=headers, proxies=proxies)
# 编码
r.encoding = 'gb2312'
# html解析
soup = BeautifulSoup(r.content, 'html.parser')
# 定义数据库
client = pymongo.MongoClient('172.17.30.232', 27018)
# 创建数据库
car = client['car']
# 创建车辆配件表单
car_fittings = car['car_fittings']
# 获取车辆配件名称与链接
for tag in soup.find_all('div', class_='chexi_left_fonta'):
    for a in tag.find_all('a'):
        print url+a.get('href'),a.get_text()
        data = {
            'name': a.get_text(),
            'url': url+a.get('href')
        }
        # 数据库添加数据
        car.car_fittings.insert_one(data)

数据库查看数据,如图:

总结
  • 大多数网站可以通过设置User-Agent,实现数据爬取,但有些网站会通过检测你的ip访问频率,进行拉黑屏蔽处理,你可以通过设置代理来混淆服务器。
  • 这种方式只能抓取的静态网页上的数据,如果想要通过执行js脚本获取动态数据,就需要用到selenium和PhantomJS了,我们下篇再讲。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值