0
点赞
收藏
分享

微信扫一扫

python爬取某某小说网

 

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")


python爬取某某小说网_xml


举报

相关推荐

0 条评论