(新手Python)豆瓣输入电影名后自动提取昵称,时间以及评论内容,后保存

(新手Python)豆瓣输入电影名后自动提取昵称,时间以及评论内容,后保存

#import re
import time
import requests
import urllib.parse as up
from lxml import etree
from selenium import webdriver
headers={“User-Agent”:“Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36”}
a=input(“请输入电影名称:”)
b=input(“请输入查询页数:”)
t=up.quote(a)
url1=“https://search.douban.com/movie/subject_search?search_text=”+t+"&cat=1002"
driver=webdriver.Chrome()
sousuoye=driver.get(url1)
url2=driver.find_element_by_xpath(’//[@id=“root”]/div/div[2]/div[1]/div[1]/div[1]/div[1]/a’).get_attribute(‘href’) #xpath提取不到href对应的属性链接,所以借助SELENIUM然后通过get_attribute提取到
f=open(“E:/shuju.doc”,“w”,encoding=“utf-8”)
for i in range(0,int(b)+1):
urls=url2+"/comments?start="+str(i
20)+"&limit=20&sort=new_score&status=P"
r=requests.get(urls,headers=headers).text
page=etree.HTML®
#昵称
names=page.xpath(’//div[@class=“avatar”]/a/@title’)
#时间
time=page.xpath(’//span[@class="comment-time "]/@title’)
#评论
comments=page.xpath(’//span[@class=“short”]/text()’)
for j in range(len(comments)):
data=names[j]+’ ‘+time[j]+’ ‘+comments[j]
f.write(data)
print(data)
print(’\n’)
print(“完成By1192106506”)
f.close()

#正则第一页可以,,后面不行,源代码中无显示
‘’’
pat1= ‘(.?)
pat2= '<a title="(.?)" href=’
pat3=’
names=re.compile(pat2).findall®
times=re.compile(pat3).findall®
rsts=re.compile(pat1).findall®
for j in range(len(times)):
print(names[j],’ ‘,times[j],’ ‘,rsts[j])
print(’\n’)

‘’’

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
好的,可以使用Python的requests库和BeautifulSoup库来实现这个任务。具体步骤如下: 1. 导入所需的库 ```python import requests from bs4 import BeautifulSoup ``` 2. 构造豆瓣电影Top250的URL地址列表 豆瓣电影Top250的每一页URL地址都是类似这样的:https://movie.douban.com/top250?start=0&filter=,其中start参数表示从哪个位置开始获取电影信息,filter参数表示按照什么方式进行筛选。我们可以通过循环遍历这些URL地址来获取所有的电影信息。 ```python urls = [] for i in range(10): url = 'https://movie.douban.com/top250?start={}&filter='.format(i * 25) urls.append(url) ``` 3. 遍历URL地址列表,获取每个页面的源代码,并保存到本地文件 ```python for url in urls: # 发送网络请求,获取页面源代码 response = requests.get(url) html = response.text # 解析页面源代码,获取电影信息 soup = BeautifulSoup(html, 'html.parser') # TODO: 在这里编写提取电影信息的代码 # 保存页面源代码到本地文件 with open('douban_top250_{}.html'.format(url[-7:-1]), 'w', encoding='utf-8') as f: f.write(html) ``` 在上面的代码中,我们使用了Python的文件操作来保存每个页面的源代码到本地文件。其中,文件名使用了URL地址中的start参数来区分不同的页面。这样,我们就可以在后面的信息提取过程中方便地读取这些本地文件,而不需要每次都发送网络请求获取源代码。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值