爬虫猫眼top100

import requests
from bs4 import BeautifulSoup
from requests.exceptions import RequestException

headers = {
    'user-agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36"}

def get_page_index(url):
    try:
        respones = requests.get(url, headers=headers)  # get请求
        if respones.status_code == 200:
            return respones.text
        return None
    except RequestException:
        print("请求有错误")
        return None

def parse_one_page(html):
    soup = BeautifulSoup(html, 'lxml')
    board_wrapper = soup.find_all('dl', class_='board-wrapper')[0]
    board_index = board_wrapper.find_all('dd')
    for link in board_index:
        title = link.find_all('p', class_='name')[0].text
        board_index = link.find_all('i')[0].text
        star = link.find_all('p', class_='star')[0].text.strip()[3:]
        releasetime = link.find_all('p', class_='releasetime')[0].text.strip()[5:]
        score = link.find_all('p', class_='score')[0].text
        print(board_index, title, star, releasetime, score)

def main():
    t = [0, 10, 20, 30, 40, 50, 60, 70, 80, 90]
    urls = ['https://maoyan.com/board/4?offset={}'.format(i) for i in t]
    for url in urls:
        html = get_page_index(url)
        parse_one_page(html)

if __name__ == "__main__":
    main()

存数据库

存入数据库01:新建表
ALTER TABLE maoyantop100 CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
create table maoyantop100
(board_index int not null,
title varchar(20) not null,
star varchar(50) not null,
releasetime varchar(50) not null,
score float not null);
import pymysql
import requests
import json
from bs4 import BeautifulSoup
from requests.exceptions import RequestException

headers = {
    'user-agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36"}

def get_page_index(url):
    try:
        respones = requests.get(url, headers=headers)  # get请求
        if respones.status_code == 200:
            return respones.text
        return None
    except RequestException:
        print("请求有错误")
        return None

def parse_one_page(html):
    soup = BeautifulSoup(html, 'lxml')
    board_wrapper = soup.find_all('dl', class_='board-wrapper')[0]
    board_index = board_wrapper.find_all('dd')
    for link in board_index:
        title = link.find_all('p', class_='name')[0].text
        board_index = link.find_all('i')[0].text
        star = link.find_all('p', class_='star')[0].text.strip()[3:]
        releasetime = link.find_all('p', class_='releasetime')[0].text.strip()[5:]
        score = link.find_all('p', class_='score')[0].text
        return board_index, title, star, releasetime, score
    
def save_to_mysql(board_index,title,star, releasetime,score):
    cur = conn.cursor()   #用来获得python执行Mysql命令的方法,操作游标。cur = conn.sursor才是真的执行
    insert_data = "INSERT INTO maoyantop100(board_index,title,star, releasetime,score)" "VALUES(%s,%s,%s,%s,%s)"
    val = (board_index,title,star, releasetime,score)
    cur.execute(insert_data, val)
    conn.commit()

conn=pymysql.connect(host="localhost",user="root", password='180****3940',db='58yuesao',port=3306, charset="utf8")

def main():
    t = [0, 10, 20, 30, 40, 50, 60, 70, 80, 90]
    urls = ['https://maoyan.com/board/4?offset={}'.format(i) for i in t]
    for url in urls:
        html = get_page_index(url)
        board_index, title, star, releasetime, score = parse_one_page(html)
        save_to_mysql(board_index, title, star, releasetime, score)

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

相关阅读更多精彩内容

  • 非暴力沟通的第一要素要求我们“客观”、“准确”的描述所观察到的。所谓客观,就是不带主观猜测,“我觉得”“我认为”这...
    chunyan阅读 274评论 0 1
  • 文|武于乔 2018年6月9日 星期六 塔罗日运:宝剑王牌 晨起喃喃自语 翻开牌看到宝剑王牌的时候,心情只是波动了...
    武于乔阅读 2,907评论 0 98
  • 关于幺儿的事情我已经忘得差不多了,但曾经我最为宝贵的那部分回忆,依然存活在我的脑海里。即使这些记忆本该消逝在...
    挽安r阅读 353评论 0 5
  • 小美婚后三个月怀孕,在养胎期间,婆婆侍奉着,这期间,婆婆说她也想要二胎,说这话一个月左右,婆婆也怀孕了,婆媳俩一起...
    旖旎i阅读 316评论 17 7

友情链接更多精彩内容