python爬取猫眼电影 top 100 保存到CSV

开启是个线程,把循环事件导入到线程中。

import threading
from bs4 import BeautifulSoup
import requests, csv
from lxml import etree


with open('data.csv', 'a', newline='') as f:
    spamwriter = csv.writer(f)
    spamwriter.writerow(['title', 'star', 'date', 'score'])

class Crawler(threading.Thread):

    def __init__(self, page):
        super().__init__()
        self.page = page

    def run(self):
        headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64)'
                                 ' AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36'
                   }
        url = 'http://maoyan.com/board/4?offset={}'.format(10 * self.page)
        response = requests.get(url, headers=headers)
        html = etree.HTML(response.text)
        results = html.xpath('//*[@class="board-wrapper"]/dd/div/div')
        for result in results:
            # 电影名称 电影主演 电影上映日期 评分
            ws = [
                result.xpath('./div[1]/p[1]/a/text()')[0],
                result.xpath('./div[1]/p[2]/text()')[0].strip(),
                result.xpath('./div[1]/p[3]/text()')[0],
                result.xpath('./div[2]/p/i[1]/text()')[0] + result.xpath('./div[2]/p/i[2]/text()')[0],
            ]
            print(ws)

            #保存到CSV
            with open('data.csv','a',newline='') as f:
                writer = csv.writer(f)
                writer.writerow(ws)


if __name__ == '__main__':

    for page in range(10):
        th = Crawler(page)
        th.start()

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值