~学习记录~:
# 1
# 干猪八戒网
# 目的: 收集猪八戒网:重庆包装设计数据
# 请求对象的定制
# 获取网页的源码(响应数据) response
# 下载并保存数据到本地 + 解析网页
# 2 代码:
"""
2022年
CSDN:抄代码抄错的小牛马
"""
# 干猪八戒网
# 目的: 收集猪八戒网:重庆包装设计数据
# 请求对象的定制
# 获取网页的源码(响应数据) response
# 下载并保存数据到本地 + 解析网页
import csv
import urllib.request
from lxml import etree
f = open('猪八戒重庆包装设计.csv', mode='w', encoding='utf-8', newline='') # newline=''可以免空行写入
csvwriter = csv.writer(f)
def get_url():
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.87 Safari/537.36'
}
url = 'https://chongqing.zbj.com/search/f/?kw=%E5%8C%85%E8%A3%85%E8%AE%BE%E8%AE%A1'
request = urllib.request.Request(url=url, headers=headers)
return request
def get_shuju(request):
response = urllib.request.urlopen(request)
shuju = response.read().decode('utf-8')
return shuju
def down_load(shuju):
tree = etree.HTML(shuju)
divs = tree.xpath('/html/body/div[6]/div/div/div[3]/div[5]/div[1]/div') # 哪所有的div,最后的div{1}下标改了就OK
for div in divs:
# ./当前层级下
# 这里去除¥,在里面中文输入法来打出¥和这个字符串里的¥是不一样的,是去不掉它的.直接去复制运行出来的¥就可以了。
name = div.xpath('./div/div/a[1]/div[1]/p/text()')[1].replace('\n', '')
price = div.xpath('./div/div/a[2]/div[2]/div[1]/span[1]/text()')[0].strip('¥')
amount = div.xpath('./div/div/a[2]/div[2]/div[1]/span[2]/text()')[0]
csvwriter.writerow([name, price, amount])
f.close()
if __name__ == '__main__':
# 定制每页的请求对象
request = get_url()
# 获取网页的源码(响应数据) response
shuju = get_shuju(request)
# 解析网页
down_load(shuju)
?
?~~~~~~~
|