request_html库的一些简单使用

request_html常用方法

from requests_html import HTMLSession

session = HTMLSession()
r = session.get('https://news.cnblogs.com/n/recommend')
news = r.html.find('h2.news_entry > a')
for new in news:
    print(new.text)
    print(new.absolute_links)

加载js,下载漫画图片

%%time
for i in range(1, 16):
    r = session.get('http://www.gugu5.com/n/14178/556176.html?p=%s'%i)
    r.html.render()
    src = r.html.find('#qTcms_pic', first=True).attrs['src']
    print(src)
    display(Image(url=src))

http://html.python-requests.org/

小例子

from requests_html import HTMLSession
from IPython.display import display, Image

session = HTMLSession()

%%time
for i in range(1, 15):
    r = session.get('http://www.gugu5.com/n/14178/531259.html?p=%s'%i)
    r.html.render()
    src = r.html.find('#qTcms_pic', first=True).attrs['src']
    
    display(Image(url=src))
    print('第%s页'%i)

爬取猫眼top100电影

import requests
from bs4 import BeautifulSoup
import csv


def get_page(url):

    headers = {
        'Host': 'maoyan.com',
        'Referer': 'http://maoyan.com/board',
        'User-Agent': 'Mozilla/5.0'
    }

    r = requests.get(url, headers=headers)
    return r.text


def parse(content):
    movies = []
    soup = BeautifulSoup(content, 'lxml')
    dl = soup.find('dl', attrs={'class': 'board-wrapper'})

    for dd in dl.find_all('dd'):
        rank = dd.find('i').text
        title = dd.find('div', attrs={'class': "movie-item-info"}).find('a').text
        stars = dd.find('p', attrs={'class': 'star'}).text.strip().split(':')[-1].strip()
        releasetime = dd.find('p', attrs={'class': 'releasetime'}).text.strip().split(':')[-1].strip()
        score = dd.find('p', attrs={'class': 'score'}).text

        movie = [rank, title, stars, releasetime, score]
        movies.append(movie)

    return movies


def write(rows, file):
    with open(file, 'a', newline='') as f:
        writer = csv.writer(f)
        writer.writerows(rows)


def main():
    url = 'http://maoyan.com/board/4?offset='
    for i in range(10):
        print(url + str(i*10))
        content = get_page(url + str(i*10))
        movies = parse(content)
        # print(movies)
        write(movies, '1.csv')


if __name__ == '__main__':
    main()
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • # Python 资源大全中文版 我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列...
    aimaile阅读 26,781评论 6 427
  • 我爸现在强撑着看电视。 看他眼皮子都要耷拉下来了,问他为什么不去睡? 他说。每天睡得早就起得早,你妈每天都说我早上...
    有肌肉的雪姨阅读 1,553评论 0 0
  • 青蛙叫遇到紧急情况会叫 几只青蛙遇在一起 更会叫 用手压一侧和俩测 熊青蛙和刺青哇谁叫的更响 雄 因为有声囊 人和...
    治愈的卡其色亮亮虾阅读 1,612评论 0 0

友情链接更多精彩内容