爬虫基础

2019-04-25  本文已影响0人  082e63dc752b

准备阶段:

数据库:mongodb,redis,mysql

mongodb安装注意(切记):

1. 关闭防火墙

2. 关闭 mongodb compress

            新版的mongodb(4.0)已经自动安装成为服务, 安装完成后,在浏览器输入地址 localhost:27017,

出现如下提示,表示安装成功

              It looks like you are trying to access MongoDB over HTTP on the native driver port.

                简单执行:

                  .\mongo             
                  > db

                  test

                > db.test.insert({'a':'b'})

                  WriteResult({ "nInserted" : 1 })

              可以安装 robomongo可视化管理mongodb。类似 navicat

爬虫常用库:

urllib,re  (内置库)

需要安装的:

requests

selenium (驱动浏览器的库)

          pip install selenium

          可以用webdriver调用 chrome。但是会打开一个浏览器窗口,需要下载 chromedriver,百度搜

          还可以安装一个 phantomjs ,需要下载,(phantomjs.org ), 这个没有浏览器窗口。纯命令行操作。

        使用: from selenium import webdriver

                    webdriver = webdriver.PhantomJS()

                    webdriver.get('http://www.baidu.com')

                    webdriver.page_source

lxml (xpath 解析)

      pip install lxml

beautifulsoup

        pip install beautifulsoup4

        from bs4 import BeautifulSoup

        soup = BeautifulSopu('<html></html>','html')

pyquery  ( 像 jquery)

        pip install pyquery

      from pyquery import PyQuery as pq

doc = pq('<html></html>')

doc = pq('<html>hello</html>')

result = doc('html').text()

result

存储库

pymysql

      pip install pymysql

      import pymysql

      conn = pymysql.connect(host='localhost',user='root',password='123456',port=3306,db='mysql')

      cursor = conn.cursor()

      cursor.execute('select * from db')

      cursor.fetchone()

flask

pymongo

django

jupyter

        jupyper notebook 会打开一个浏览器,就像本地操作python一样简单。

端口是8888,http://localhost:8888

get和post区别

get 请求会把参数都写在网址上。可以直接通过关键词进行筛选

post必须构造一个表单,然后把表单请求传给服务器。相对来说更安全一些。

请求url

https://www.baidu.com/s?wd=图片

document  html 

请求头  request headers 

quqery string parameters

爬虫过程

请求(requests),返回(response),分析(xpath,beautifulsoup),存储(纯文本,关系型数据库mysql,非关系型数据库mongodb,redist)

如遇到javascrip,requests则取不到js渲染的信息,可以使用selenium 导入一个浏览器对象webdriver(chrome或者phantomjs),还可以用splash获取。还可以用pyv8,Ghost.py等等来下载。

上一篇下一篇

猜你喜欢

热点阅读