python使用requests库和re库写的京东商品信息爬虫

 1 import requests
 2 import re
 3
 4 def getHTMLText(url):
 5     try:
 6         r = requests.get(url, timeout=30)
 7         r.raise_for_status()
 8         r.encoding = r.apparent_encoding
 9         return r.text
10     except:
11         return ""
12
13 def parsePage(ilt, html):
14     try:
15         plt = re.findall(r‘data-done="1"><em>¥</em><i>\d+\.\d+</i></strong>‘,html)
16         tlt = re.findall(r‘<em>.+<font class="skcolor_ljg">笔盒</font>.+</em>‘,html)
17         for i in range(len(plt)):
18             match=re.search(r‘\d+\.\d+‘,plt[i])#这个函数返回的对象是match对象,所以用group属性把价格取出
19             price=match.group(0)
20             list_match=re.findall(r‘[\u4e00-\u9fa5]‘,tlt[i])#这个字符串的中文提取我想了好久都没想到用什么正则表达式一下子提取出来
21             title=‘‘
22             for m in range(len(list_match)):#后来放弃了用正则表达式一下子提取出来的想法,要是有大佬想到了指点一下呗
23                 title=title+list_match[m]
24             ilt.append([price , title])
25     except:
26         print("")
27
28 def printGoodsList(ilt):
29     tplt = "{:4}\t{:8}\t{:16}"
30     print(tplt.format("序号", "价格", "商品名称"))
31     count = 0
32     for g in ilt:
33         count = count + 1
34         print(tplt.format(count, g[0], g[1]))
35
36 def main():
37     goods = ‘笔盒‘
38     depth=3
39     start_url=‘https://search.jd.com/Search?keyword=‘+goods+‘&enc=utf-8‘
40     infoList = []
41     for i in range(1,depth):
42         try:
43             url = start_url + ‘&page=‘ + str(2*i-1)
44             html = getHTMLText(url)
45             parsePage(infoList, html)
46         except:
47             continue
48     printGoodsList(infoList)
49 main()

1,下面附上参考源码,来源慕课;原来的爬虫是爬淘宝首页商品,不过现在淘宝首页要登录验证,不能直接爬取;但是具有参考价值;

import requests
import re
def getHTMLText(url):
    try:
        r=requests.get(url,timeout=30)
        r.raise_for_status()
        r.encoding=r.apparent_encoding
        return r.text
    except:
        return" "

def parsePage(ilt,html):
    try:
        plt=re.findall(r‘\"view_price\"\:\"[\d\.]*\" ‘,html)
        tlt=re.findall(r‘\"raw_title\"\:\".*?\"‘,html)
        for i in range(len(plt)):
            price=eval(plt[i].split(‘:‘)[1])
            title=eval(tlt[i].split(‘:‘)[1])
            ilt.append([price,title])
    except:
        print("")

def printGoodsList(ilt):
    tplt="{:4}\t{:8}\t{:16}"
    print(tplt.format("序号","价格","商品名称"))
    count=0
    for g in ilt:
        count=count+1
        print(tplt.format(count,g[0],g[1]))

def main():
    goods=‘书包‘
    depth=2#搜索结果设置为两页
    start_url=‘https://s.taobao.com/search?q=‘+goods
    infoList=[]
    for i in range(depth):
        try:
            url=start_url+‘&s=‘+str(44*i)
            html=getHTMLText(url)#把网站文本text爬下来
            parsePage(infoList,html)#然后把文本里需要的信息爬下来
        except:
            continue
    printGoodsList(infoList)#然后把信息整理一下打印出来

main()

原文地址:https://www.cnblogs.com/caesura-k/p/10067921.html

时间: 2024-11-08 14:49:43

python使用requests库和re库写的京东商品信息爬虫的相关文章

Python大神利用正则表达式教你搞定京东商品信息

京东(JD.com)是中国最大的自营式电商企业,2015年第一季度在中国自营式B2C电商市场的占有率为56.3%.如此庞大的一个电商网站,上面的商品信息是海量的,小编今天就带小伙伴利用正则表达式,并且基于输入的关键词来实现主题爬虫. 首先进去京东网,输入自己想要查询的商品,小编在这里以关键词"狗粮"作为搜索对象,之后得到后面这一串网址:https://search.jd.com/Search?keyword=%E7%8B%97%E7%B2%AE&enc=utf-8,其实参数%E

手把手教你写电商爬虫-第五课 京东商品评论爬虫 一起来对付反爬虫

系列教程: 手把手教你写电商爬虫-第一课 找个软柿子捏捏 手把手教你写电商爬虫-第二课 实战尚妆网分页商品采集爬虫 手把手教你写电商爬虫-第三课 实战尚妆网AJAX请求处理和内容提取 手把手教你写电商爬虫-第四课 淘宝网商品爬虫自动JS渲染 四节课过去了,咱们在爬虫界也都算见过世面的人,现在再来一些什么ajax加载之类的小鱼小虾应该不在话下了,即使是淘宝这种大量的ajax,我们 祭上我们的核武器,也轻松应对了,这一课主要是来看看除了技术上的页面处理外,我们还会遇上更棘手的问题,就是反爬虫,当然现

python爬虫实战(一)----------爬取京东商品信息

本文章的例子仅用于学习之用,如涉及版权隐私信息,请联系本人删除,谢谢. 最近一直在练习使用python爬取不同网站的信息,最终目的是实现一个分布式的网络爬虫框架,可以灵活适用不同的爬取需求. 项目github地址: https://github.com/happyAnger6/anger6Spider 在学习的过程中遇到不少问题,在这里做一下总结,并分享出来,希望有兴趣的朋友批评指正,共同学习共同进步. 本着实用至上的目的,不准备过多讲实现细节和原理,直接通过项目需求来边实战边学习,因此本系列文

基于python的scrapy爬虫抓取京东商品信息

这是上的第二节爬虫课程的课后作业:抓取京东某类商品的信息,这里我选择了手机品类. 使用scrapy爬虫框架,需要编写和设置的文件主要有phone.py , pipelines.py , items.py , settings.py , 其中主要编写的是前两个文件,最后一个文件主要设置破解反爬方法. phone.py编写程序如下: import scrapy from scrapy.http import Request from jd_phone.items import JdPhoneItem

python爬虫实践——爬取京东商品信息

1 ''' 2 爬取京东商品信息: 3 请求url: 4 https://www.jd.com/ 5 提取商品信息: 6 1.商品详情页 7 2.商品名称 8 3.商品价格 9 4.评价人数 10 5.商品商家 11 ''' 12 from selenium import webdriver 13 from selenium.webdriver.common.keys import Keys 14 import time 15 16 17 def get_good(driver): 18 try

python爬虫:爬取京东商品信息

''' 初级版 ''' import time from selenium import webdriver from selenium.webdriver.common.keys import Keys driver = webdriver.Chrome(r'C:\Users\Auraro\Desktop/chromedriver.exe') num = 1 try: driver.implicitly_wait(10) driver.get('https://www.jd.com/') in

Python——安装requests第三方库

一.介绍 requests是Python的一个HTTP客户端库,跟urllib,urllib2类似,不过requests的优势在于使用简单,相同一个功能,用requests实现起来代码量要少很多.毕竟官方文档都很直白的说: python的标准库urllib2提供了大部分需要的HTTP功能,但是API太逆天了,一个简单的功能就需要一大堆代码. 所以,使用requests方便的多. 二.下载安装 注:没有配置好Python开发环境的同学可以先戳配置Python开发环境 1.首先去这里requests

Python:requests库、BeautifulSoup4库的基本使用(实现简单的网络爬虫)

Python:requests库.BeautifulSoup4库的基本使用(实现简单的网络爬虫) 一.requests库的基本使用 requests是python语言编写的简单易用的HTTP库,使用起来比urllib更加简洁方便. requests是第三方库,使用前需要通过pip安装. pip install requests 1.基本用法: import requests #以百度首页为例 response = requests.get('http://www.baidu.com') #res

python之requests库使用

requests库 虽然Python的标准库中 urllib模块已经包含了平常我们使用的大多数功能,但是它的 API 使用起来让人感觉不太好,而 Requests宣传是 “HTTP for Humans”,说明使用更简洁方便. 安装和文档地址: 利用pip可以非常方便的安装: pip install requests 中文文档:http://docs.python-requests.org/zh_CN/latest/index.htmlgithub地址:https://github.com/re