准备工作:安装python3环境、beautifulsoup4库(https://beautifulsoup.readthedocs.io/zh_CN/v4.4.0/#id7)

1、urllib和BeautifuSoup

获取浏览器信息

from urllib import request
req = request.urlopen("http://www.baidu.com")
print(req.read().decode("utf-8"))

模拟真实浏览器:携带user-Agent头

(目的是不让服务器认为是爬虫,若不带此浏览器信息,则可能会报错)

req = request.Request(url) #此处url为某个网址
req.add_header(key,value)  #key即user-Agent,value即浏览器的版本信息
resp = request.urlopen(req)
print(resp.read().decode("utf-8"))

使用POST

  • 导入urllib库下面的parse
from urllib import parse
  • 使用urlencode生成post数据
postData = parse.urlencode([(key1,val1),(key2,val2),(keyn,valn)
])
  • 使用post
request.urlopen(req,data=postData.encode("utf-8")) #使用postData发送post请求
resp.status  #得到请求状态
resp.reason #得到服务器的类型

完整代码示例(以爬取维基百科首页链接为例)

#-*- coding:utf-8 -*-
from bs4 import BeautifulSoup as bs
from urllib.request import urlopen
import re
import ssl#获取维基百科词条信息
ssl._create_default_https_context = ssl._create_unverified_context #全局取消证书验证#请求URL,并把结果用utf-8编码
req = urlopen("https://en.wikipedia.org/wiki/Main page").read().decode("utf-8")
#使用beautifulsoup去解析
soup = bs(req,"html.parser")# print(soup)
#获取所有href属性以“/wiki/Special”开头的a标签
urllist = soup.findAll("a",href=re.compile("^/wiki/Special"))
for url in urllist:#去除以.jpg或.JPG结尾的链接if not re.search("\.(jpg|JPG)$",url["href"]):#get_test()输出标签下的所有内容,包括子标签的内容;#string只输出一个内容,若该标签有子标签则输出“noneprint(url.get_text()+"----->"+url["href"])# print(url)

2、存储数据到MySQL

安装pymysql

  • 通过pip安装:
    $ pip install pymysql
  • 或者通过安装文件:
    $ python setup.py install

使用

#引入开发包
import pymysql.cursors
#获取数据库链接
connection = pymysql.connect(host="localhost",user = 'root',password = '123456',db ='wikiurl',charset = 'utf8mb4')
try:#获取会话指针with connection.cursor() as cursor#创建sql语句sql = "insert into `tableName`(`urlname`,`urlhref`) values(%s,%s)"#执行SQL语句cursor.execute(sql,(url.get_text(),"https://en.wikipedia.org"+url["href"]))#提交connection.commit()
finally:#关闭connection.close()

3、爬虫注意事项

Robots协议(机器人协议,也称爬虫协议)全称是“网络爬虫排除协议”,网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不可以抓取。一般在主页面下,如https://en.wikipedia.org/robots.txt

Disallow:不允许访问
allow:允许访问

参考:慕课网课程https://www.imooc.com/learn/712

2018年9月27日

python爬虫简单示例相关推荐

  1. python爬虫简单示例_最简单爬虫示例(入门级)

    [实例简介] [实例截图] [核心代码] from lxml import etree import requests def handle_request(url): heades = { 'Use ...

  2. python多线程爬虫实例-Python多线程爬虫简单示例

    python是支持多线程的,主要是通过thread和threading这两个模块来实现的.thread模块是比较底层的模块,threading模块是对thread做了一些包装的,可以更加方便的使用. ...

  3. python爬虫入门实例-终于领会python爬虫入门示例

    随着人工智能 大数据的火热 Python成为了广大科学家和普通大众的学习语言.在学习Python的过程中 有很多人感到迷茫 不知道自己该从什么地方入手,今天我们就来说一些新手该如何学习Python编程 ...

  4. python爬虫下载小说_用PYTHON爬虫简单爬取网络小说

    用PYTHON爬虫简单爬取网络小说. 这里是17K小说网上,随便找了一本小说,名字是<千万大奖>. 里面主要是三个函数: 1.get_download_url() 用于获取该小说的所有章节 ...

  5. python爬虫代码示例分享

    这篇文章主要介绍了三个python爬虫项目实例代码,使用了urllib2库,文中示例代码非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下. python爬虫代码示例分享 一. ...

  6. python爬虫简单练手:音乐top250

    python爬虫简单练手:音乐top250 使用的库bs4和requests: 通过requests发送网络请求 通过bs4的beautifulsoup解析html 页面分析: top250一共有10 ...

  7. 用PYTHON爬虫简单爬取网络小说

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 python免费学习资 ...

  8. 简单实用的python爬虫完整示例

    windows用户,Linux用户几乎一样: 打开cmd输入以下命令即可,如果python的环境在C盘的目录,会提示权限不够,只需以管理员方式运行cmd窗口 pip install -i https: ...

  9. python爬取10个网站_十个Python爬虫武器库示例,十个爬虫框架,十种实现爬虫的方法!...

    一般比价小型的爬虫需求,我是直接使用requests库 + bs4就解决了,再麻烦点就使用selenium解决js的异步 加载问题.相对比较大型的需求才使用框架,主要是便于管理以及扩展等. 1.Scr ...

  10. Pycharm + python 爬虫简单爬取网站数据

    本文主要介绍简单的写一个爬取网站图片并将图片下载的python爬虫示例. 首先,python爬虫爬取数据,需要先了解工具包requests以及BeautifulSoup requests中文文档:ht ...

最新文章

  1. python 模拟HTTP服务端
  2. what is your research about?
  3. mysql 检查列是否存在,如何检查mysql表列是否存在?
  4. 橱柜高度与身高对照表_厨房台面高度是多少 厨房台面如何选购
  5. 双电容单相电机接线图解_单相电机要用电容,三相电机为何不需要?
  6. apache2.2后修改最大并发连接数
  7. vmware使用已有linux系统的物理磁盘分区
  8. Hibernate学习笔记:数据库连接的配置
  9. 《德鲁克管理思想精要》读书笔记3 - 管理的新范式?
  10. Java实现微信公众号每日推送
  11. opencv26:霍夫直线变换
  12. CF Card Reader Test市面CF读卡器不完全测评
  13. 瓦片地图面面观之缩放级别
  14. 今天,我宣布了新 Logo
  15. Logistic回归与建模
  16. Java基础(dayThirteen):并发与多线程
  17. 解决Git在clone项目时的fatal
  18. leanote mysql_leanote 服务器搭建
  19. 人工智能及数学运算的基础方法
  20. 全民5G年战火升级 荣耀两款5G力作齐发领跑“下半场”

热门文章

  1. steam密码文件在哪里_如何将您的Steam库无痛地移动到另一个文件夹或硬盘驱动器...
  2. 美通企业周刊 | 世界最长海底公路隧道在青海开工;乐高华南首家品牌旗舰店开业;洲际加速布局粤港澳大湾区...
  3. 单片机蓝牙模块与手机蓝牙通信(1)
  4. 怎样更改计算机ip,怎么快速修改电脑ip地址
  5. 【裴礼文数学分析】例1.1.4
  6. Unity 3D - 常用插件汇总
  7. RF射频技术-si4438C芯片介绍
  8. Java常用框架简介
  9. Python实现B样条代码
  10. 华为手机照片 计算机,教你华为手机怎么传照片到电脑上去