用Python语言,运用正则表达式编写代码,爬取“豆瓣电影 Top 250”页面(共10页)中的电影名和精选短评
时间: 2023-06-09 19:05:16 浏览: 85
好的,以下是爬取“豆瓣电影 Top 250”页面中的电影名和精选短评的Python代码:
```python
import re
import requests
for i in range(0, 10):
url = 'https://movie.douban.com/top250?start=' + str(i * 25) + '&filter='
res = requests.get(url)
res.encoding = 'utf-8'
html = res.text
pattern = re.compile('class="title">(.*?)</span>.*?class="quote".*?span>(.*?)</span>', re.S)
items = re.findall(pattern, html)
for item in items:
movie_name = item[0].replace(" ", " ")
short_comment = item[1].strip()
print(movie_name + '\n' + short_comment + '\n')
```
这段代码利用了requests库来发送请求,然后通过正则表达式匹配页面内容,提取出需要的电影名和精选短评,并将结果输出到控制台。
相关问题
使用 Python 语言,运用正则表达式编写代码 爬取百度热搜榜页面中的热搜关键词和热力值
在Python中使用正则表达式爬取百度热搜榜页面需要先了解网页的结构,通常这类信息会通过HTML或JSON数据呈现。这里假设数据是以HTML表格形式存在,我们可以使用`requests`库获取网页内容,然后用`BeautifulSoup`或`re`库解析HTML。
以下是一个简单的示例,展示如何使用正则表达式抓取部分信息:
```python
import requests
from bs4 import BeautifulSoup
import re
# 获取网页内容
url = 'https://top.baidu.com/buzz'
response = requests.get(url)
html_content = response.text
# 使用BeautifulSoup解析HTML
soup = BeautifulSoup(html_content, 'lxml')
# 查找包含关键词和热力值的元素(这里假设是table中的td标签)
search_results = soup.find_all('td', class_='num')
# 正则表达式提取关键词和热力值
regex = r'<a.*?>(.*?)</a>\s*<span class="num">(.*?)</span>'
keywords_and_values = [re.findall(regex, str(result)) for result in search_results]
# 结果存储到字典或其他合适的数据结构中
hot_searches = [{'keyword': value[0], 'heat': int(value[1].replace(',', ''))}
for value in keywords_and_values]
print(hot_searches)
python爬虫爬取豆瓣电影top250使用正则表达式
以下是使用正则表达式爬取豆瓣电影top250的Python爬虫示例代码:
```python
import re
import requests
from bs4 import BeautifulSoup
def get_movies():
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
movie_list = []
for i in range(0, 10):
link = 'https://movie.douban.com/top250?start=' + str(i * 25)
r = requests.get(link, headers=headers, timeout=10)
soup = BeautifulSoup(r.text, "html.parser")
div_list = soup.find_all('div', class_='hd')
for each in div_list:
movie = each.a.span.text.strip()
movie_list.append(movie)
return movie_list
def main():
movies = get_movies()
for movie in movies:
print(movie)
if __name__ == '__main__':
main()
```
阅读全文
相关推荐













