小白啥也不会,用爬虫软件的
这是我之前做爬取京东商品评论的代码,可以参考下,自己改下路径就行了
# coding=utf-8
import requests
import re
import io
import sys
reload(sys)
sys.setdefaultencoding('utf8')
temp='https://item.jd.com/100004325476.html'
headers = {
'User-Agent': 'Mozilla / 5.0(Windows NT 10.0;Win64;x64) AppleWebKit / 537.36(KHTML, likeGecko) Chrome / 89.0.4389.90Safari / 537.36'
# 请求的客户端信息
}
def url(temp):
jd_id=re.findall("\d+",temp)[0] # 提取商品id
# 替换京东商品js中一般的Request URL模板
l='https://club.jd.com/comment/productPageComments.action?productId=xxx&score=0&sortType=5&page={page_num}&pageSize=10&isShadowSku=1&rid=0&fold=1'
l=l.replace('xxx', jd_id) # 替换id
return l
def init():
# 实例化类的时候运行初始化函数
# 打开文件
file_name = 'jd_commet'
print '正在打开文件'+file_name+'txt文件!'
def parse_one_page(url,fp):
# 指定url
# url='https://club.jd.com/comment/productPageComments.action?productId=100017543968&score=0&sortType=6&page=1&pageSize=10&isShadowSku=100016034372&rid=0&fold=1'
# 发起请求
response = requests.get(url, headers=headers)
# 获取响应
js_data = response.json()
# 提取评论列表
comments_list = js_data['comments']
for comment in comments_list:
# 评论内容
content = comment.get('content')
content = ' '.join(content.split('\n')) # 处理换行符
print(content)
# 循环写出数据
fp.write(u'{}\n'.format(content))
fp.write(u"\n") # 写入一条数据后加一行空数据
def parse_max_page(l):
fp = io.open('E:/python/jd_commet.txt', 'w', encoding='utf_8_sig')
for page_num in range(10): # 抓包获得最大页数 最大50页,超出自动停止
# 指定通用的url模板
new_url=l.format(page_num=page_num) # 把字符串替换为变量
print '正在获取第'+str(page_num)+'页'
# 调用函数
parse_one_page(url=new_url, fp=fp)
fp.close()
def close_files():
print('爬虫结束,关闭文件!')
def run(temp):
init()
l = url(temp)
# 开始爬虫
parse_max_page(l=l)
# 关闭文件
close_files()
if __name__ == '__main__':
run(temp)
私聊
期末啥也不会。。不是很好,你这作业给你讲个思路自己去看看,完成作业应该用不了几个小时,学到的是自己的
Requests: 让 HTTP 服务人类 — Requests 2.18.1 文档 (python-requests.org)Requests官网,大致看完Requests使用可以来看看有没有能用的api
python环境应该有吧
就先pip install requests
然后
import requests
#设置请求头
my_headers={
"user-agent":"*****"
}
res=requests.get("你的网址",headers=my_headers)
# 下面的看着用吧,记得加上print()
res.encoding #自动推断编码
res.status_code #状态码
res.json() #返回为json格式
res.headers #response Headers
要提取页面的信息,可以使用css如果有前端基础的话,没有就去看一下xpath,这里就不赘述,入门不难,多学点
推荐使用Scrapy Selector
先安装scrapy Selector,记得要安装lxml 和Twisted ,具体百度
然后
from scrapy import Selector
sel = Selector(text=html)
# text()+extract()提取字符串值
tag=sel.xpath("//*[@id='info']/div/p[1]/text()").extract()[0]
大致就是这样
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632