requests-html 是基于现有的框架 PyQuery、Requests、lxml、beautifulsoup4等库进行了二次封装,作者将Requests设计的简单强大的优点带到了该项目中。

#安装:


> pip install requests-html

使用GET请求 https://python.org 网站。

先来看看requests的基本使用。

from requests_html import HTMLSession
session = HTMLSession()

r = session.get('https://python.org/')

# 获取页面上的所有链接。
all_links =  r.html.links
print(all_links)

# 获取页面上的所有链接,以绝对路径的方式。
all_absolute_links = r.html.absolute_links
print(all_absolute_links)

~~~~~~~~小试牛刀~~~~~~~~

作为一个IT技术人员,是不是要时时关心一下科技圈的新闻,上博客园新闻频道,抓取最新的推荐新闻。

from requests_html import HTMLSession

session = HTMLSession()

r = session.get("https://news.cnblogs.com/n/recommend")

# 通过CSS找到新闻标签
news = r.html.find('h2.news_entry > a')

for new in news:
    print(new.text)  # 获得新闻标题
    print(new.absolute_links)  # 获得新闻链接

接下来我们到网站上下载壁纸,以美桌网(www.win4000.com)为例。

from requests_html import HTMLSession
import requests
import time

session = HTMLSession()


# 解析图片列表
def get_girl_list():
    # 返回一个 response 对象
    response = session.get('http://www.win4000.com/zt/xinggan.html')  # 单位秒数

    content = response.html.find('div.Left_bar', first=True)

    li_list = content.find('li')

    for li in li_list:
        url = li.find('a', first=True).attrs['href']
        get_girl_detail(url)


# 解析图片详细
def get_girl_detail(url):
    # 返回一个 response 对象
    response = session.get(url)  # 单位秒数
    content = response.html.find('div.scroll-img-cont', first=True)
    li_list = content.find('li')
    for li in li_list:
        img_url = li.find('img', first=True).attrs['data-original']
        img_url = img_url[0:img_url.find('_')] + '.jpg'
        print(img_url + '.jpg')
        save_image(img_url)


# 保持大图
def save_image(img_url):
    img_response = requests.get(img_url)
    t = int(round(time.time() * 1000))  # 毫秒级时间戳
    f = open('E:/code/girl/%d.jpg' % t, 'ab')  # 存储图片,多媒体文件需要参数b(二进制文件)
    f.write(img_response.content)  # 多媒体存储content
    f.close()


if __name__ == '__main__':
    get_girl_list()

 

 

 


本文转载:CSDN博客