利用Python爬虫简单地爬取网页上的数据

电影评分top 250

​
import requests
import pymysql
from bs4 import BeautifulSoup
from lxml import etree
import re

url="https://movie.douban.com/top250"
header = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36"}
pre={'User-agent':'Mozilla/5.0'}
# 连接database
conn = pymysql.connect(host="localhost", user="root",password="123456",database="demo",charset="utf8")

# 得到一个可以执行SQL语句的光标对象
cursor = conn.cursor()


flag = True
while flag:
    html = requests.get(url, headers=header).text
    list = etree.HTML(html)
    lis = list.xpath('//ol[@class="grid_view"]/li')
    try:
        for oneSelector in lis:
            name = oneSelector.xpath("div/div[2]/div[1]/a/span[1]/text()")[0]
            score = oneSelector.xpath("div/div[2]/div[2]/div/span[2]/text()")[0]
            #people = oneSelector.xpath("div/div[2]/div[2]/div/span[4]/text()")[0]
            people = re.findall("(.*?)人评价",people)[0]

            #introduce=oneSelector.xpath("div/div[2]/div[2]/p[2]/span/text()")[0]
            
            #拼接sql

            sql = "INSERT INTO movie(name, score,people) VALUES ('{}', '{}','{}')".format(name, score,people)

            print(sql)
            cursor.execute(sql)
            

        conn.commit()
    except  Exception as e:
        print("获取失败:{}".format(e))
        conn.rollback()
        cursor.close()
        conn.close()

    #获取下一页地址
    try:
        next_url = list.xpath('//span[@class="next"]/a/@href')[0]
        if next_url:
            url = "https://movie.douban.com/top250"+ next_url
    except:
        flag = False


​

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

只爱大锅饭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值