基于正则re、selenium、PhantomJS动态爬取某宝水果信息

为完成课程论文,使用Python结合正则表达式re、selenium和PhantomJS动态爬取了淘宝上的云南水果信息。虽然XPath在多数情况下有效,但在淘宝页面上遇到困难,因为页面动态加载。通过调整,最终成功实现爬取。代码可适应修改以爬取不同区域的水果数据。
摘要由CSDN通过智能技术生成

由于课程论文需要,花了两天爬取某宝的水果信息,是基于python的正则re、selenium、PhantomJS。代码可直接运行,但本文只以云南水果为主,如需爬取其它省份或者全国信息,只需更改主函数中的初始网页start_url即可。
我的习惯一般是采用xpath,此工具在一般的网页上使用无往不利,极为简单方便。但是对某宝页面却栽了跟头,你会发现你的xpath抓下来的数据据全是空的。这时才幡然醒悟,可能某宝的页面是动态的吧。那咱只好另谋出路了。

**说明:**
在淘宝输入水果,并选择云南省以后,进入第一层页面,网址为:
https://s.taobao.com/search?q=%E6%B0%B4%E6%9E%9C&suggest=0_1&_input_charset=utf-8&wq=shuiguo&suggest_query=shuiguo&source=suggest&cps=yes&ppath=122450261%3A52858&sort=sale-desc&bcoffset=0&p4ppushleft=%2C44&s=0
,之后实现翻页功能只需将上面最后一个数字0改成4488...等等;
详见if __name__=="__main__":函数里面的内容。
# -*- coding: utf8 -*-
from lxml import etree
import requests
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
import re
import json
import time
import numpy as np

def shuiguo(start_url):
    head={
  'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36'}
    html=requests.get(start_url,headers=head).content

    ##这里爬取第一层页面店铺名、水果名、发货地、价格等等信息,使用xpath尝试过,结果均为空。
    #失败以后,我们右键——网页源代码,会发现第一页的店铺名、水果名、发货地、价格、水果网址等信息,
    #都放在一个g_page_config的字典里面(PS:开始以为是json,却尝试用json.loads()提取不出来),
    #于是我们选用正则爬取。具体代码见下:

    fileds=re.findall(r'g_page_config = (.*?)</script>',html,re.S)#懒惰匹配
    fileds=''.join(fileds).replace(';','')
    fileds
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值