京东商品的爬取

前言

这学期学了python爬虫,所以用python写了一个爬取京东商品关注信息的程序,由于这是我的第一篇CSDN,所以可能格式都不是很好看,希望见谅。

代码

下面就直接上代码好了
其中selenium对应的安装参考这里说的很详细了
selenium对应三大浏览器(谷歌、火狐、IE)驱动安装.
requests 和 BeatifulSoup需要用管理员权限进入cmd使用pip install XXXX来安装
其它直接在pycharm里面直接导入就可以了

//encoding = 'utf-8'
import requests
from lxml import etree
import csv
from bs4 import BeautifulSoup
from selenium import webdriver
import re

def getHTMLText(goods):
    url = 'https://search.jd.com/Search?keyword='+ goods+ '&enc=utf-8'
    head={
   'authority': 'search.jd.com',
          'method': 'GET',
          'path': '/s_new.php?keyword=%E6%89%8B%E6%9C%BA&enc=utf-8&qrst=1&rt=1&stop=1&vt=2&wq=%E6%89%8B%E6%9C%BA&cid2=653&cid3=655&page=4&s=84&scrolling=y&log_id=1529828108.22071&tpl=3_M&show_items=7651927,7367120,7056868,7419252,6001239,5934182,4554969,3893501,7421462,6577495,26480543553,7345757,4483120,6176077,6932795,7336429,5963066,5283387,25722468892,7425622,4768461',
          'scheme': 'https',
          'referer': 'https://search.jd.com/Search?keyword=%E6%89%8B%E6%9C%BA&enc=utf-8&qrst=1&rt=1&stop=1&vt=2&wq=%E6%89%8B%E6%9C%BA&cid2=653&cid3=655&page=3&s=58&click=0',
          'user-agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36',
          'x-requested-with': 'XMLHttpRequest',
          'Cookie':'qrsc=3; pinId=RAGa4xMoVrs; xtest=1210.cf6b6759; ipLocation=%u5E7F%u4E1C; _jrda=5; TrackID=1aUdbc9HHS2MdEzabuYEyED1iDJaLWwBAfGBfyIHJZCLWKfWaB_KHKIMX9Vj9_2wUakxuSLAO9AFtB2U0SsAD-mXIh5rIfuDiSHSNhZcsJvg; shshshfpa=17943c91-d534-104f-a035-6e1719740bb6-1525571955; shshshfpb=2f200f7c5265e4af999b95b20d90e6618559f7251020a80ea1aee61500; cn=0; 3AB9D23F7A4B3C9B=QFOFIDQSIC7TZDQ7U4RPNYNFQN7S26SFCQQGTC3YU5UZQJZUBNPEXMX7O3R7SIRBTTJ72AXC4S3IJ46ESBLTNHD37U; ipLoc-djd=19-1607-3638-3638.608841570; __jdu=930036140; user-key=31a7628c-a9b2-44b0-8147-f10a9e597d6f; areaId=19; __jdv=122270672|direct|-|none|-|1529893590075; PCSYCityID=25; mt_xid=V2_52007VwsQU1xaVVoaSClUA2YLEAdbWk5YSk9MQAA0BBZOVQ0ADwNLGlUAZwQXVQpaAlkvShhcDHsCFU5eXENaGkIZWg5nAyJQbVhiWR9BGlUNZwoWYl1dVF0%3D; __jdc=122270672; shshshfp=72ec41b59960ea9a26956307465948f6; rkv=V0700; __jda=122270672.930036140.-.1529979524.1529984840.85; __jdb=122270672.1.930036140|85.1529984840; shshshsID=f797fbad20f4e576e9c30d1c381ecbb1_1_1529984840145'
          }
    try:
        r =requests.get(url,headers = head ,timeout = 30)
        r.raise_for_status()
        r.encoding = r.apparent_encoding
        return r.text
    except:
        return ""


def searchGoods(brand):
    soup = BeautifulSoup(brand,'html.parser')
    data1 = soup.find('ul',{
   "class":"J_valueList v-fixed"})
    datali =data1.find_all('li')
    Goods_href=[]
    Goods_name=[]
    for li in datali:
        Goods_name.append(li.a.attrs['title'])
        Goods_href.append(li.a.attrs['href'])
    count = 0
    for j in range(len(Goods_href)):
        print("<<<{}.".format(count+1),"品牌    :"+Goods_name[j])
        count = count+1
    judge = 1
    while(judge):
        Goods_num = input("请输入品牌对应序号:")
        if Goods_num.isdigit():
            judge = 0
        else:
            print("您的输入有误,请输入数字:")
            continue
        a = int(Goods_num)
        if a>count:
            print("输入序号过大,请重新输入:")
            judge = 1
        elif a<1:
            print("输入序号过小,请重新输入:")
            judge = 1
    print("选择的品牌是: "+Goods_name[int(Goods_num)-1])
    brand_url = "https://search.jd.com/"+Goods_href[int(Goods_num)-1]
    return brand_url

def orderBy(brand_url):
    judge = 1
    while(judge):
        kind = input("按照:综合 / 销量 / 评论数 / 新品 / 价格 进行排序(默认综合)")
        strinfo 
  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是使用Selenium完成京东商品爬取的步骤: 1. 安装Selenium库 ``` pip install selenium ``` 2. 下载Chrome浏览器驱动 Selenium需要浏览器驱动来控制浏览器。这里以Chrome浏览器为例,下载对应版本的驱动:https://sites.google.com/a/chromium.org/chromedriver/downloads 3. 编写爬虫代码 以下是一个简单的例子,可以爬取京东商品的名称、价格和链接: ```python from selenium import webdriver # 创建Chrome浏览器驱动对象 driver = webdriver.Chrome('chromedriver.exe') # 打开京东首页 driver.get('https://www.jd.com/') # 在搜索框中输入关键词并搜索 input_elem = driver.find_element_by_id('key') input_elem.send_keys('手机') search_btn = driver.find_element_by_class_name('button') search_btn.click() # 等待搜索结果页面加载完成 driver.implicitly_wait(10) # 获取搜索结果中的商品列表 product_list = driver.find_elements_by_css_selector('.gl-item') # 遍历商品列表,提取名称、价格、链接等信息 for product in product_list: name = product.find_element_by_css_selector('.p-name a').text price = product.find_element_by_css_selector('.p-price strong i').text link = product.find_element_by_css_selector('.p-name a').get_attribute('href') print(name, price, link) # 关闭浏览器 driver.quit() ``` 在上面的代码中,使用`webdriver.Chrome`创建Chrome浏览器驱动对象,并使用`get`方法打开京东首页。然后,使用`find_element_by_id`和`find_element_by_class_name`等方法定位搜索框和搜索按钮,并模拟用户输入关键词和点击搜索按钮。接着,使用`implicitly_wait`方法等待搜索结果页面加载完成。最后,使用`find_elements_by_css_selector`方法定位商品列表,遍历列表,提取商品的名称、价格和链接等信息,并打印输出。最后,调用`quit`方法关闭浏览器。 需要注意的是,Selenium是一个自动化测试工具,爬虫使用时要注意不要频繁请求,以免被网站封禁IP。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值