动态网页抓取( 5.ROBOT协议的基本语法:爬虫的网页抓取1.)

优采云 发布时间: 2021-11-30 10:21

  动态网页抓取(

5.ROBOT协议的基本语法:爬虫的网页抓取1.)

  

import urllib.request

# 私密代理授权的账户

user = "user_name"

# 私密代理授权的密码

passwd = "uesr_password"

# 代理IP地址 比如可以使用百度西刺代理随便选择即可

proxyserver = "177.87.168.97:53281"

# 1. 构建一个密码管理对象,用来保存需要处理的用户名和密码

passwdmgr = urllib.request.HTTPPasswordMgrWithDefaultRealm()

# 2. 添加账户信息,第一个参数realm是与远程服务器相关的域信息,一般没人管它都是写None,后面三个参数分别是 代理服务器、用户名、密码

passwdmgr.add_password(None, proxyserver, user, passwd)

# 3. 构建一个代理基础用户名/密码验证的ProxyBasicAuthHandler处理器对象,参数是创建的密码管理对象

# 注意,这里不再使用普通ProxyHandler类了

proxyauth_handler = urllib.request.ProxyBasicAuthHandler(passwdmgr)

# 4. 通过 build_opener()方法使用这些代理Handler对象,创建自定义opener对象,参数包括构建的 proxy_handler 和 proxyauth_handler

opener = urllib.request.build_opener(proxyauth_handler)

# 5. 构造Request 请求

request = urllib.request.Request("http://bbs.pinggu.org/")

# 6. 使用自定义opener发送请求

response = opener.open(request)

# 7. 打印响应内容

print (response.read())

  5.ROBOT协议

  在目标 URL 后添加 /robots.txt,例如:

  

  第一个意思是,对于所有爬虫来说,它们不能在 /? 开头的路径无法访问匹配/pop/*.html的路径。

  最后四个用户代理的爬虫不允许访问任何资源。

  所以Robots协议的基本语法如下:

  二、 爬虫的网络爬行

  1.爬虫的目的

  实现浏览器的功能,通过指定的URL直接返回用户需要的数据。

  一般步骤:

  2.网络分析

  获取到相应的内容进行分析后,其实需要对一段文本进行处理,从网页中的代码中提取出你需要的内容。BeautifulSoup 可以实现通常的文档导航、搜索和修改文档功能。如果lib文件夹中没有BeautifulSoup,请使用命令行安装。

  

pip install BeautifulSoup

  3.数据提取

  

# 想要抓取我们需要的东西需要进行定位,寻找到标志

from bs4 import BeautifulSoup

soup = BeautifulSoup("","html.parser")

tag=soup.meta

# tag的类别

type(tag)

>>> bs4.element.Tag

# tag的name属性

tag.name

>>> "meta"

# attributes属性

tag.attrs

>>> {"content": "all", "name": "robots"}

# BeautifulSoup属性

type(soup)

>>> bs4.BeautifulSoup

soup.name

>>> "[document]"

# 字符串的提取

markup="房产"

soup=BeautifulSoup(markup,"lxml")

text=soup.b.string

text

>>> "房产"

type(text)

>>> bs4.element.NavigableString

  4.BeautifulSoup 应用实例

  

import requests

from bs4 import BeautifulSoup

url = "http://www.cwestc.com/MroeNews.aspx?gd=2"

html = requests.get(url)

soup = BeautifulSoup(html.text,"lxml")

  

  

#通过页面解析得到结构数据进行处理

from bs4 import BeautifulSoup

soup=BeautifulSoup(html.text,"lxml")

#定位

lptable = soup.find("table",width="780")

# 解析

for i in lptable.find_all("td",width="680"): href = "http://www.cwestc.com"+i.find("a")["href"]

# href = i.find("a")["href"]

date = href.split("/")[4]

print (title,href,date)

  

  4.Xpath 应用实例

  XPath 是一种用于在 XML 文档中查找信息的语言。XPath 可用于遍历 XML 文档中的元素和属性。XPath 是 W3C XSLT 标准的主要元素,XQuery 和 XPointer 都建立在 XPath 表达式之上。

  四个标签的使用方法

<p>

from lxml import etree

html="""

test

NO.1

NO.2

NO.3

one

two

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线