python爬取简单网页

requets

requests是python实现的简单易用的HTTP库,使用起来比urllib简洁很多

因为是第三方库,所以使用前需要cmd安装

pip install requests

安装完成后import一下,正常则说明可以开始使用了。

基本用法:

requests.get()用于请求目标网站,类型是一个HTTPresponse类型

mport requests

response = requests.get(‘http://www.baidu.com‘)
print(response.status_code)  # 打印状态码
print(response.url)          # 打印请求url
print(response.headers)      # 打印头信息
print(response.cookies)      # 打印cookie信息
print(response.text)  #以文本形式打印网页源码
print(response.content) #以字节流形式打印

  为你的请求添加头信息

import requests
heads = {}
heads[‘User-Agent‘] = ‘Mozilla/5.0 ‘                           ‘(Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 ‘                           ‘(KHTML, like Gecko) Version/5.1 Safari/534.50‘
 response = requests.get(‘http://www.baidu.com‘,headers=headers)

Beautiful Soup

简单来说,Beautiful Soup是python的一个库,最主要的功能是从网页抓取数据。官方解释如下:

Beautiful Soup提供一些简单的、python式的函数用来处理导航、搜索、修改分析树等功能。它是一个工具箱,通过解析文档为用户提供需要抓取的数据,因为简单,所以不需要多少代码就可以写出一个完整的应用程序。

Beautiful Soup自动将输入文档转换为Unicode编码,输出文档转换为utf-8编码。你不需要考虑编码方式,除非文档没有指定一个编码方式,这时,Beautiful Soup就不能自动识别编码方式了。然后,你仅仅需要说明一下原始编码方式就可以了。

Beautiful Soup已成为和lxml、html6lib一样出色的python解释器,为用户灵活地提供不同的解析策略或强劲的速度。

eautiful Soup支持Python标准库中的HTML解析器,还支持一些第三方的解析器,如果我们不安装它,则 Python 会使用 Python默认的解析器,lxml 解析器更加强大,速度更快,推荐安装。

html.parser    文档容错能力强

lxml       速度块,容错能力强

xml       唯一支持xml的解析器,速度很快

html5lib     速度较慢,容错能力最强

实现简单的爬虫小练习

import requests
from bs4 import BeautifulSoup

def getHTMLText(url):
	try:
		r = requests.get(url ,timeout = 30)
		r = raise_for_status()
		r.encoding = "utf-8"
		return r.text
	except:
		return ""

url = "http://www.baidu.com"
print(getHTMLText(url))
import requests
from bs4 import BeautifulSoup

url = "http://www.baidu.com"
r = reuqests.get(url)
r.encoding = "utf-8"
soup = BeautifulSoup(r ,"xml")
print(soup.title.arrts)
print(soup.title.name)
print(soup.title.string)

  

原文地址:https://www.cnblogs.com/Crush999/p/11831223.html

时间: 2024-10-09 13:13:54

python爬取简单网页的相关文章

Python 爬取简单网页

1 import urllib.request 2 url = "http://www.baidu.com/s?wd=" #get网址格式:"https://www.baidu.com/s?wd=关键字" 3 key="周杰伦" 4 key_code=urllib.request.quote(key) # 汉字编码转化 5 url_all=url+key_code 6 req=urllib.request.Request(url_all) 7 d

python爬取某个网页的图片-如百度贴吧

python爬取某个网页的图片-如百度贴吧 作者:vpoet 日期:大约在冬季 注:随意copy,不用告诉我 #coding:utf-8 import urllib import urllib2 import re if __name__ =="__main__": rex=r'src="(http://imgsrc.baidu.com/forum/w%3D580.*?\.jpg)"'; Response=urllib2.urlopen("http://t

python爬取动态网页

静态网页:根据url即可方便的爬取 动态网页:分为两种:一种是通过F12查看控制台的xhr等文件,找到包含所要爬取的内容的文件,发现这个文件的url路径跟页码有联系,那么就可以根据构造的url来进行访问爬取了.还有一种情况是查看了包含所要爬取内容的文件,发现文件url是固定不变的或者跟页码没有关系,这个时候可以通过简单的模拟浏览器点击行为来请求网页再爬取,这种方案执行效率较慢,不适于多页爬取的情况.代码如下: 1 def parse(self, response): 2 print 'parse

python爬取基础网页图片

python基础爬虫总结 1.爬取信息原理 与浏览器客户端类似,向网站的服务器发送一个请求,该请求一般是url,也就是网址.之后服务器响应一个html页面给客户端,当然也有其他数据类型的信息,这些就是网页内容.我们要做的就是解析这些信息,然后选择我们想要的,将它爬取下来按要求写入到本地. 2. 爬虫基本流程 1.获取网页的响应的信息 这里有两个常用的方法 html = requests.get(url) return html.text 或者 html = urllib.request.urlo

python 爬虫(一) requests+BeautifulSoup 爬取简单网页代码示例

以前搞偷偷摸摸的事,不对,是搞爬虫都是用urllib,不过真的是很麻烦,下面就使用requests + BeautifulSoup 爬爬简单的网页. 详细介绍都在代码中注释了,大家可以参阅. # -*- coding: utf-8 -*- """ Created on Thu Jul 5 20:48:25 2018 @author: brave-man blog: http://www.cnblogs.com/zrmw/ python3 + anaconda(Spyder)

Python爬取网页的三种方法

# Python爬取网页的三种方法之一:  使用urllib或者urllib2模块的getparam方法 import urllib fopen1 = urllib.urlopen('http://www.baidu.com').info() fopen2 = urllib2.urlopen('http://www.sina.com').info() print fopen1.getparam('charset') print fopen2.getparam('charset') #----有些

Python爬取网页信息

Python爬取网页信息的步骤 以爬取英文名字网站(https://nameberry.com/)中每个名字的评论内容,包括英文名,用户名,评论的时间和评论的内容为例. 1.确认网址 在浏览器中输入初始网址,逐层查找链接,直到找到需要获取的内容. 在打开的界面中,点击鼠标右键,在弹出的对话框中,选择“检查”,则在界面会显示该网页的源代码,在具体内容处点击查找,可以定位到需要查找的内容的源码. 注意:代码显示的方式与浏览器有关,有些浏览器不支持显示源代码功能(360浏览器,谷歌浏览器,火狐浏览器等

python爬取网页数据

python时间戳 将时间戳转为日期 #!/usr/bin/python # -*- coding: UTF-8 -*- # 引入time模块 import time #时间戳 timeStamp = 1581004800 timeArray = time.localtime(timeStamp) #转为年-月-日形式 otherStyleTime = time.strftime("%Y-%m-%d ", timeArray) print(otherStyleTime) python爬

使用python爬取MedSci上的影响因子排名靠前的文献

使用python爬取medsci上的期刊信息,通过设定条件,然后获取相应的期刊的的影响因子排名,期刊名称,英文全称和影响因子.主要过程如下: 首先,通过分析网站http://www.medsci.cn/sci的交互过程.可以使用谷歌或火狐浏览器的“审查元素-->Network”,然后就可以看到操作页面就可以看到网站的交互信息.当在网页上点击“我要查询”时,网页会发送一个POST消息给服务器,然后,服务器返回查询结果 然后,将查询到的结果使用正则表达式提取出需要的数据. 最后将提取出的数据输出到文