今天使用xpath爬取豆瓣电影top250的电影信息,使用了xpath,和正则表达式,最近学习爬虫感觉xpath是相对较简单一点的(相对于正则表达式),xpath有时候提取的数据不是自己全部需要的,所以配合着正则表达式一起用效果较好。
今天爬取的网站是豆瓣电影top250(https://movie.douban.com/top250?start=0&filter=),进行翻页之后发现它的url变化情况
它们在翻页时候,start一次变化25,我们可以使用range(0,226,25)获取到10页的url。
接下来对得到的网页请求数据进行解析,我们有很多种方法,比如bs4,正则表达式等等,这里推荐使用xpath,因为我们可以通过谷歌浏览器自带的copy xpath功能,定位到想要获取数据的标签,如下图:
先点击1去定位网页元素,2任意选择数据之后,3右击打开功能,4复制xpath即可,有时候可能会不好用,可以自己学xpath,看看教程,非常简单。
下面是源代码:
import requests
import pandas as pd
from lxml import etree
import re
from time import sleep
url = 'https://movie.douban.com/top250?start={}&filter=' #基础url,{}用于切页拼接
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:90.0) Gecko/20100101 Firefox/90.0' #设置请求头
} # 设置的请求头
df = pd.DataFrame(columns=['电影名字','导演','主演','上映年份','国家','评分','评分人数','电影简介'])