1 网页结构

  html:超文本标记语言------->类似人的鼻子耳朵,长在那里,大体骨架就是那个样子

  css:层叠样式表------->这个是外观的深化,比如贴个双眼皮,橙色眼睛。。。

  js:动态脚本语言----->人的技能,跳舞rap

学习网站:w3cshool

2 requests使用

(1)开发环境使用pycharm

(2)爬虫基本原理

  request---->向服务器发送访问的请求

  responce---->服务器收到用户请求以后,会验证请求的有效性然后向用户发送响应的内容。客户端收到响应并显示出来。

(3)get post请求方式

  get:

  post:

    使用有道翻译网页作为案例,http://fanyi.youdao.com/,按F12进入开发者模式,单击network,此时为空。

    在输入框中输入"中国你好"单击翻译

    单击network---->XHR找到翻译数据

    查看请求方式为post,并可以加那个headers中的URL复制出来,因为post需要自己构建请求头

  使用request.post抓取有道翻译的结果

 import requests
import json
def get_translate_date(word=None):
url='http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'
Form_data = {'i':word, 'from':'AUTO','to': 'AUTO','smartresult': 'dict', 'client':'fanyideskweb',
'salt':'','sign':'78181ebbdcb38de9b4a3f4cd1d38816b','doctype':'json',
'version': '2.1','keyfrom':'fanyi.web','action':'FY_BY_CLICKBUTTION','typoResult':'false'} response = requests.post(url, data=Form_data) # 请求表单数据
content = json.loads(response.text) # 将JSON格式字符串转字典
print(content)
print(content['translateResult'][0][0]['tgt']) # 打印翻译后的数据
if __name__ == '__main__':
get_translate_date('中国你好')

3 使用beautiful soup解析网页

  通过requests可以抓取网页源码并解析提取数据,beautiful soup被移植到bs4库中,也就是安装它需要先安装bs4.官方中文文档https://beautifulsoup.readthedocs.io/zh_CN/v4.4.0/

(1)打开网页

http://www.cntour.cn/

(2)筛选路径soup.select()

随便选择一句话----->右击检查(右侧弹出开发者界面)----->右击左边高亮数据------>选择copy----->选择copy selector

(3)引入re库

https://docs.python.org/zh-cn/3/library/re.html re中文官网

(4)最终代码

 import  requests
from bs4 import BeautifulSoup
import re url="http://www.cntour.cn/"
strhtml=requests.get(url)
soup=BeautifulSoup(strhtml.text,'lxml')# 通过lxml解析后转换为树形结构,每个节点都是对象
data=soup.select("#main > div > div.mtop.firstMod.clearfix > div.centerBox > ul.newsList > li > a")
print(data)
for item in data:
result={
'title':item.get_text(),#连接在<a>标签中用get_text
'link':item.get('href'),#在<a>href属性用get
'ID':re.findall('\d+',item.get('href'))#\d表示匹配数字 +表示匹配前一个字符1次或者多次
}
print(result)

(5)最后结果

完事!

python爬虫1的更多相关文章

  1. Python 爬虫模拟登陆知乎

    在之前写过一篇使用python爬虫爬取电影天堂资源的博客,重点是如何解析页面和提高爬虫的效率.由于电影天堂上的资源获取权限是所有人都一样的,所以不需要进行登录验证操作,写完那篇文章后又花了些时间研究了 ...

  2. python爬虫成长之路(一):抓取证券之星的股票数据

    获取数据是数据分析中必不可少的一部分,而网络爬虫是是获取数据的一个重要渠道之一.鉴于此,我拾起了Python这把利器,开启了网络爬虫之路. 本篇使用的版本为python3.5,意在抓取证券之星上当天所 ...

  3. python爬虫学习(7) —— 爬取你的AC代码

    上一篇文章中,我们介绍了python爬虫利器--requests,并且拿HDU做了小测试. 这篇文章,我们来爬取一下自己AC的代码. 1 确定ac代码对应的页面 如下图所示,我们一般情况可以通过该顺序 ...

  4. python爬虫学习(6) —— 神器 Requests

    Requests 是使用 Apache2 Licensed 许可证的 HTTP 库.用 Python 编写,真正的为人类着想. Python 标准库中的 urllib2 模块提供了你所需要的大多数 H ...

  5. 批量下载小说网站上的小说(python爬虫)

    随便说点什么 因为在学python,所有自然而然的就掉进了爬虫这个坑里,好吧,主要是因为我觉得爬虫比较酷,才入坑的. 想想看,你可以批量自动的采集互联网上海量的资料数据,是多么令人激动啊! 所以我就被 ...

  6. python 爬虫(二)

    python 爬虫 Advanced HTML Parsing 1. 通过属性查找标签:基本上在每一个网站上都有stylesheets,针对于不同的标签会有不同的css类于之向对应在我们看到的标签可能 ...

  7. Python 爬虫1——爬虫简述

    Python除了可以用来开发Python Web之后,其实还可以用来编写一些爬虫小工具,可能还有人不知道什么是爬虫的. 一.爬虫的定义: 爬虫——网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区 ...

  8. Python爬虫入门一之综述

    大家好哈,最近博主在学习Python,学习期间也遇到一些问题,获得了一些经验,在此将自己的学习系统地整理下来,如果大家有兴趣学习爬虫的话,可以将这些文章作为参考,也欢迎大家一共分享学习经验. Pyth ...

  9. [python]爬虫学习(一)

    要学习Python爬虫,我们要学习的共有以下几点(python2): Python基础知识 Python中urllib和urllib2库的用法 Python正则表达式 Python爬虫框架Scrapy ...

  10. python爬虫学习(1) —— 从urllib说起

    0. 前言 如果你从来没有接触过爬虫,刚开始的时候可能会有些许吃力 因为我不会从头到尾把所有知识点都说一遍,很多文章主要是记录我自己写的一些爬虫 所以建议先学习一下cuiqingcai大神的 Pyth ...

随机推荐

  1. myeclipse常用快捷(持续更新)

    最近开始转用myeclipse,总结一下快捷方式:(我喜欢用的) [Ctrl+O]    显示类中方法和属性的大纲,能快速定位类的方法和属性,在查找Bug时非常有用. [Ctrl+M]    窗口最大 ...

  2. 7、Python变量流程基础(变量、赋值、格式化、运算符、流程控制、range()函数)

    一.执行Python程序的两种方式 1.交互式 在终端内输入“python3”,然后输入python代码 2.命令行式 在终端内输入“python3 文本文件路径” 二.变量 1.变量的组成 Pyth ...

  3. 01背包问题(dfs+剪枝)

    01背包问题 dfs解法 #include <iostream> #include <cstring> #include <algorithm> #include ...

  4. Lightning Web Components 组件样式(四)

    要将样式与组件进行绑定,需要创建一个同名的样式文件,这样样式将会自动应用到组件 在组件中定义的样式的作用域是属于组件的,这样允许组件可以在不同的上下文中可以复用, 可以阻止其他组件的样式的复写 css ...

  5. 干货 | 10分钟搞懂branch and bound(分支定界)算法的代码实现附带java代码

    Outline 前言 Example-1 Example-2 运行说明 00 前言 前面一篇文章我们讲了branch and bound算法的相关概念.可能大家对精确算法实现的印象大概只有一个,调用求 ...

  6. Hdu 5093 Battle Ship

    每个海面要么放要么不放,因此可以用二分图匹配, 考虑把同一行内的能互相看到的点放到一个行块里,同一列内能看到的点放到一个列块里,然后每一个行块都可以和该行块里所有海面的列块连边,选了这个行块,就必须选 ...

  7. PHP Closure(闭包)类详解

    Closure 面向对象变成语言代码的复用主要采用继承来实现,而函数的复用,就是通过闭包来实现.这就是闭包的设计初衷. 注:PHP里面闭包函数是为了复用函数而设计的语言特性,如果在闭包函数里面访问指定 ...

  8. linux定时执行shell脚本

    写一个shell脚本,定时执行简单示例 很多时候我们有希望服务器定时去运行一个脚本来触发一个操作,比如说定时去备份服务器数据.数据库数据等 不适合人工经常做的一些操作这里简单说下 Shell俗称壳,类 ...

  9. SDN初体验(软件定义网络实验一)

    作业说明 本次实验步骤2.3是在机房环境下完成的,步骤1.4是在自己笔记本上重新配置完成的,所以环境.用户名什么的会略有差别. 1. 安装轻量级网络仿真工具Mininet 为了节约课程时间,实验室机房 ...

  10. SSM框架中,ContextLoaderListener与RequestContextListener的联系与区别

    在整合SSM框架时,我们要在web.xml文件中对spring进行相关配置. 首先要配置一个<context-param></context-param> <!--加载s ...