python爬取京东商品分析报告,python爬虫爬取京东商品步骤

  python爬取京东商品分析报告,python爬虫爬取京东商品步骤

  Python网络爬虫所需的模块。这个爬虫需要的模块如下。

  请求、BeautifulSoup、chardet、re、json和csv

  首先,我将介绍这些模块的用途。

  1 .请求模块请求模块允许你获取你想要访问的网页的html内容。使用requests.get(URL),可以将连接返回到相应的网页并调用。短信或者。内容来获取相应网页的html内容。在哪里?text是以字符串形式返回的web内容,content是以二进制字节形式返回的web内容,它们有不同的用途。例如,一些web内容返回了。由于错误的编码格式,文本可能会出现乱码。

  代码示例:

  God _ content=requests.get (URL)。内容回报

  类“bytes”返回。文字。

  为什么。这里使用content,因为汉字在。文本在这里被调用。

  2.对于2.chardetweb page乱码,首先你需要在网页的源代码中观察网页设计师创建网站时使用的编码格式。第一种方法非常简单,通常出现在源代码的开头。例如

  meta http-equiv= content-type content= text/html;charset=utf-8 /meta http-equiv= content-type content= text/html;可以看到charset=gbk/page的编码格式是utf-8,page 2的编码格式是gbk。当分析utf-8编码的网页时,默认情况下,gbk格式的分析将是乱码。在这种情况下,解码(或。encode)必须被调用)。

  有关几种编码格式的信息,请参考http://blog.csdn.net/fenn vde 007/article/details/20769179。

  第二种代码方法是使用chardet模块。使用chardet的detect()函数获取网页的编码格式。例如

  status=chardet . detect(goods _ content)#如果判断会返回网页编码格式

  从{encoding: utf-8 , confidence: 0.99, language : }编码属性来看,网页编码格式是utf-8模式。

  所以,在这里,为了解决乱码问题。打电话。对已爬网内容的格式转换进行解码(utf-8)。

  content _ encode=goods _ content . decode(utf-8))3 .BeautifulSoup模块对通过滚动到UTF-8编码格式获得的二进制网络内容进行解码

  有两种方法可以使用BeautifulSoup搜索web节点。第一种是通过.操作直接检索。

  汤,汤

  其次,使用find(和find_all函数进行搜索。

  find))函数只返回要搜索的第一个节点标签类型。

  函数的作用是:返回列表中所有节点标签的类型。

  该函数的参数可以是要搜索的节点标签类型。模型

  P_label=soup.find_all(p 您还可以使用attrs参数来查找指定属性的相应标记。模型

  P_label=soup.find(p,attrs) class (:) UI-page-s))爬虫主要使用BeautifulSoup返回的分析树,根据需要可以在

  例如:

  #对应的id标签j_Goodslist=soup.find_all(div),Attr={ id : j _ goods list })0)GL _ I _ wrap=)Find attrs={ class : GL-I-wrap } for lap }查找所有属性类为“GL-I-wrap”的div节点,遍历返回的div节点列表。获取商品对应的链接网址。

  最后要指明利用这样访问节点的方式进行检索不是不可以,

  在工作量减少的情况下可以实现,但是当网页比较复杂,节点标签比较多的时候,你就很难把你需要的内容直接对应到某个或某些节点上。此时使用xPath或CSS模式进行搜索,然后使用浏览器check (F12),可以很容易地生成你想要获取信息的xPath或CSS路径。这里暂时不介绍这些知识。

  4.re正则表达式模块正则表达式对于检索文档信息和字符串内容是非常必要和高效的,尤其是对于文本处理。相关资料很多,请参考Python正则表达式指南。

  对于本文的爬虫来说,re模块是用来方便地获取商品信息的,获取这些信息的原因是为了以后抓取评论时,为JD.COM评论网页建立查询字符串参数中的参数。把代码贴在这里就行了,示例正则表达式模块的使用,以及参数的用处后面会放。

  首先,构建正则表达式。

  #使用正则表达式匹配页面所需信息re _ SKU id=re.com堆(r skuId=\ d) #获取商品的sk uid值re _ https=re.com堆(r https:) #处理网站格式Rex=re.com堆(r \ w [(] {1})

  Uid=re _ skuid.search (page _ text)。group () #获取sku productId=re.search(r\d ,Dump)的值。group()# Get product cont=rex . find all(t)[0]#将抓取的内容转换成json可以解析的字典格式。json和csv模块是格式转换的模块。json用于将抓取的评论网页解析成Python可以方便处理的字典格式。JSON有。load()和。loads(),Loads()是一种字典格式,将json格式转换成Python的方便处理。dumps()方法将Python字典格式转换成json格式。

  Csv模块以csv文件格式保存在本文的crawler中,以供将向下爬行的评论使用。

  代码如下:

  Jsont=rex.findall(t)[0] #清理网页的jsontent并获取一些con=json.loads(cont) #将抓取的内容转换成字典格式def Insert_To_Csv(csv_file,Content): with open (csv _ file, w) as f: title=[itemname , time , comment , score , assesse ]# Csv文件的标题spamwriter=csv.writer (f,delimiter=,)# ,分隔符spam writer . writerrow(title value in content . items():for page in value:#遍历每页for comm in page: #然后遍历每页下的注释csv _ list=commcsv _ list.insert (0,key)spam writer . writerw(CSV _ list)。 相关信息请参考官方文件csv。

  以上是网络爬虫大致需要的模块,还有其他重要模块会继续补充。接下来,爬行JD的思路和方法。介绍了COM用Python做的注释。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: