1、了解浏览器的工作原因
向目标服务器发送 -- 请求 Request
目标服务器对请求 -- 响应 Response
浏览器对响应回来的内容进行解析,展示给用户一个图文并茂的页面
2、爬虫
使用python编写的一段代码,这段代码的功能,模拟浏览器向服务器发送请求,服务器会将响应结果,给python程序,python 程序需要对接收的响应结果进行处理。
3、爬虫程序怎么编写?
a)安装一个requests库,目的是向服务器发送请求
安装方式:pip install requests在线安装方式
b)测试
打开python的交互式窗口
import requests
c)使用requests库发送请求
如果请求方式为get
需要使用到的是requests.get()方法
如果请求方式为post
需要使用到的是requests.post()方法
4、XPath解析数据
全称:XML Path Language是一种小型的查询语言
是一门在XML文档中查找信息的语言
XPath优点:可在XML中查找信息,支持HTML的查找,可通过元素和属性进行导航
需要依赖lxml库:pip install lxml
下载谷歌浏览器XPath插件(xpathhelper)
例子1://div[@id='book-img-text']/ul/li/div[@class='book-mid-info']/h2/a/text()
例子2://p[@class="author"]/a[1]/text()
5、在python程序中,使用xpath提取数据(解析数据)
(a)from lxml import etree
(b)e = etree.HTML(resp.text)
(c)author = e.xpath('//p[@class="author"]/a[1]/text()')
(d)print("author")
进行数据整合
lst = [['小说名称', '作者']]
for i in range(0, len(names)):
lst.append([names[i], author[i]])
6、数据的存储
使用excel存储
import openpyxl #导入第三方库
wk = openpyxl.Workbook() #创建工作薄对象
sheet = wk.active #获取工作表sheet页
for item in lst:
sheet.append(item) #向sheet中添加数据,一次添加一行,列表
wk.save("11-某某小说月票榜.xlsx") #保存
爬虫工作步骤:
1发请求
2接响应
3数据提取
4数据存储
import requests
import time
from lxml import etree
import openpyxl
url = "https://www.qidian.com/rank/yuepiao/"
headers = {
"User-Agent": "Mozilla/5.0(Windows NT 6.1;WOW64) AppleWebKit/537.36(KABUL, like Gecko) "
"Chrome/86.0.4240.198Safari/537.36 "
}
resp = requests.get(url=url, headers=headers)
# print(resp.status_code)
# print(resp.text)
e = etree.HTML(resp.text)
names = e.xpath("//div[@id='book-img-text']/ul/li/div[@class='book-mid-info']/h2/a/text()")
author = e.xpath("//div[@id='book-img-text']/ul/li/div[@class='book-mid-info']/p[@class='author']/a[@class='name']/text()")
# print(names)
# print(author)
lst = [['小说名称', '作者']]
for i in range(0, len(names)):
lst.append([names[i], author[i]])
# for item in lst:
# print(item)
wk = openpyxl.Workbook()
sheet = wk.active
for item in lst:
sheet.append(item)
wk.save("11-某某小说月票榜.xlsx")