爬虫Day3

用到的网页--豆瓣电影Top250

需要爬取信息:

数据保存在网页源代码中,是服务加载方式。先拿到网页源代码--request。再通过re提取想要的信息---re。

新知识:用csv存数据,可以用excel表格展示数据

python 复制代码
import csv
result = obj.finditer(page_content)
f = open("data.csv",mode="w")
csvwriter = csv.writer(f)
for it in result:
     dic = it.groupdict()#把数据全都扔到字典里
    dic['year'] = dic['year'].strip()
    csvwriter.writerow(dic.values())
f.close()
resp.close()
print("over!")

注意:在pycharm里要对文件用utf-8重新编码,如果要用excel显示时要换回ansi编码,两者颠倒会乱码。

代码:

python 复制代码
import requests
import re
import csv

#将数据存储,存储时以逗号为分割
#肖申克的救赎,1994,9.7,3001556人评价
url = "https://movie.douban.com/top250"
headers = {
"User-Agent":
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36"
}
resp = requests.get(url,headers = headers)
#拿到网页源代码
#print(resp.text)
page_content = resp.text
#解析数据,写正则表达式
obj = re.compile(r'<li>.*?<div class="item">.*?<span class="title">(?P<name>.*?)</span>.*?'
                 r'<p class="">.*?<br>(?P<year>.*?)&nbsp.*?<span class="rating_num" property="v:average">'
                 r'(?P<grade>.*?)</span>'
                 r'.*?<span>(?P<conment>.*?)</span>',re.S)
result = obj.finditer(page_content)
f = open("data.csv",mode="w")
csvwriter = csv.writer(f)

for it in result:
    # print(it.group("name"),end="    ")
    # print(it.group("year").strip(),end="    ")
    # print(it.group("grade"),end="   ")
    # print(it.group("conment"))
    #将数据整理成字典的格式
    dic = it.groupdict()#把数据全都扔到字典里
    dic['year'] = dic['year'].strip()
    csvwriter.writerow(dic.values())

f.close()
resp.close()
print("over!")

可以看到每一页的榜单链接只有一个参数改变,爬取信息时可以只改参数。

相关推荐
cup1124 分钟前
[开源] Meta Assistant / 告别命令行,我为一堆 Python 脚本做了一个 Windows 任务栏的“家”
windows·python·工具·nuitka·脚本运行
小小编程路1 小时前
Python 还有容器类型互转、进制转换、字符编码转换
开发语言·windows·python
Samooyou2 小时前
RAG项目案例--02在线检索&过滤流水线
人工智能·python·ai·全文检索·检索
动能小子ohhh2 小时前
DocForge平台的设计与开发--文件上传接口的实现
开发语言·人工智能·python·langchain·ocr·fastapi
ab_dg_dp2 小时前
Android 17+ 提取 AIDL 生成 Java 文件的实用脚本
android·java·python
夏语灬2 小时前
cryptography:Python 密码学标准库的终极选择
开发语言·python·密码学
CTA终结者3 小时前
期货开仓前保证金够吗:get_account 可用与占用字段对照
python·区块链
开源量化GO3 小时前
夜盘白盘衔接几分钟误下单:天勤交易时段与行情过滤
python·区块链
辣椒思密达3 小时前
Python公开数据采集实战:如何解决请求高频拦截与Session会话中断问题
开发语言·python
Albart5754 小时前
Python 实战教程:用 30 分钟学会解决真实问题
开发语言·python