基于Python的网络爬虫与数据可视化分析——代码

原理及技术报告请点击此处查看

一、爬虫部分

# -*- coding:utf-8 -*-
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait
from selenium import webdriver
from bs4 import BeautifulSoup
from urllib import parse
import time
import pymysql
​
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--headless')
browser = webdriver.Chrome(chrome_options=chrome_options)
wait = WebDriverWait(browser, 10)
​
def get_url(n, word,pinpai):
    print('正在爬取第' + str(n) + '页')
    # 确定搜索商品的内容
    keyword = {'keyword':word}
    # 页面n与参数page的关系
    page = '&page=%s' % (2 * n - 1)
    pinpai='&ev=exbrand_%s'%(pinpai)
    url = 'https://search.jd.com/Search?' +parse.urlencode(keyword) +pinpai+'&enc=utf-8' + page
    print(url)
    return url
​
def parse_page(url,pinpai):
    print('爬取信息并保存中...')
    browser.get(url)
    # 把滑轮慢慢下拉至底部,触发ajax
    for y in range(100):
        js = 'window.scrollBy(0,100)'
        browser.execute_script(js)
        time.sleep(0.1)
    wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, '#J_goodsList .gl-item')))
    html = browser.page_source
    soup = BeautifulSoup(html, 'lxml')
    # 找到所有商品标签
    goods = soup.find_all('li', class_="gl-item")
    # 遍历每个商品,得到每个商品的信息
    for good in goods:
        num = good['data-sku']
        tag = good.find('div', class_="p-price").strong.em.string
        money = good.find('div', class_="p-price").strong.i.string
        #就是京东有些商品竟然没有店铺名,导检索store时找不到对应的节点导致
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值