Python爬虫期末复习

题型

选择题 填空题 简答题 代码阅读理解题 代码书写题

复习要点

一个爬虫程序的结构:

1、 调度模块(Scheduler):安排发起网络请求的策略
2、 网络模块(network):发起网络请求,并接受服务器返回
3、 爬虫模块(Spider):解析、爬取数据
4、 Item模块:定义爬取的数据项
5、 Piplines模块:对已经爬取的数据做后续处理(存入数据库、存入文件系统、传递给流式处理框架,等等)

urllib库(略)

练习1.爬取百度网站首页的源代码,并保存为一个磁盘文件。

#方法1
import urllib.request	#导入urllib.request模块

#将爬取到的网页赋给变量file
file = urllib.request.urlopen("http://www.baidu.com")

#将爬取到的网页的全部内容和一行内容分别赋给变量data,dataline
data = file.read()
dataline = file.readline()

#以写入的方式打开一个本地文件,命名为*.html等网页格式。
fhandle = open("./01.html","wb")

#将要写入的变量的值写入该文件中。
fhandle.write(date1)

#关闭该文件。
fhandle.close()
#方法2:使用urllib.request里的urlretrieve()函数
import urllib.request	#导入urllib.request模块
#格式为:urllib.request.urlretrieve(<"url">,filename = <"本地文件地址">)
filename = urllib.request.urlretrieve("http://www.baidu.com",filename = "./02.html")

#urlretrieve执行过程中会产生缓存,可使用urlcleanup()删除缓存
urllib.request.urlcleanup()  

练习2.爬取某张在线图片,输出相关信息,并保存为一个磁盘文件。

import urllib.request  

url = "http://pic1.nipic.com/2008-12-30/200812308231244_2.jpg"
response = urllib.request.urlopen(url) 

print(response)#返回变量response
print(response.info()["Content-Type"])#返回与当前环境有关的信息
print(response.getcode())#返回当前爬取网页的状态码,返回200位正确,返回其他则不正确
print(response.geturl())#返回当前所爬取的URL地址

f = open("./1.jpeg", "wb")
f.write(response.read())
f.close()

输出结果:
Python爬虫期末复习_第1张图片

Requests库

教程:http://www.cnblogs.com/yan-lei/archive/2017/08/28/7445460.html
官方文档:http://docs.python-requests.org/en/master/

实例1-用爬虫程序向www.ip138.com发起IP归属地查询

import requests
url = "http://m.ip138.com/ip.asp?ip="
ip = "125.71.2.4"
try:
 r = requests.get(url + ip)
 r.raise_for_status()
 r.encoding = r.apparent_encoding
 print(r.text[1900:])
except:
 print("爬取失败")

实例2-用爬虫程序从http://www.ip138.com/post/上获取全国所有城市、地区邮政编码。


Re(正则表达式

教程:https://www.cnblogs.com/tina-python/p/5508402.html
官方文档:https://docs.python.org/3/library/re.html

BeautfulSoup库

教程:https://www.cnblogs.com/yan-lei/p/7615902.html
官方文档:https://www.crummy.com/software/BeautifulSoup/
Beautiful Soup 4.4.0 文档:https://beautifulsoup.readthedocs.io/zh_CN/v4.4.0/

实例1-BeautfulSoup爬取百度贴吧


实例2-BeautfulSoup爬取开奖网站信息


三种抓取工具的比较

Python爬虫期末复习_第2张图片

Scrapy框架

官方中文文档:https://scrapy-chs.readthedocs.io/zh_CN/latest/

实例-基于Scrapy框架实现爬取开奖网站评奖


XPath

实例-XPathAPI开奖网站之XPath解析


你可能感兴趣的:(学习笔记)