Python学习笔记(三):爬虫用到的知识点总结

  • selenium :自动化测试工具
  • chromedriver.exe(win64位) :带界面的浏览器插件驱动
  • PhantomJS :没有界面的浏览器引擎
  • BeautifulSoup :解析html
    • 官网地址:https://www.crummy.com/software/BeautifulSoup/bs4/doc/index.zh.html

我的完整代码如下,带界面的谷歌浏览器驱动可以运行,但是不带界面的PhantomJS引擎不能工作,报错500

from flask import Flask
from bs4 import BeautifulSoup
import urllib.request
import urllib.parse
from selenium import webdriver
import time

app = Flask(__name__)

@app.route('/')
def hello_world():
    url = "http://www.huahaicang.cn/#/size?productId=356530511&brandId=2056402"
    return getUrl(url)

def getUrl(url):
    browser = webdriver.Chrome()
    #browser = webdriver.PhantomJS(executable_path="D:\\CompanyProject\\PythonProject\\phantomjs-2.1.1-windows\\bin\\phantomjs.exe")
    # browser.maximize_window()
    browser.get(url)
    time.sleep(1)
    try:
        html = browser.page_source
        soup = BeautifulSoup(html, "lxml")
        trs = soup.tbody
        trsContents = trs.contents
        # 清除列表中的\n元素
        while trsContents.count('\n') > 0:
            trsContents.remove('\n')
        print(trsContents)
        dic1 = {}
        # 循环tr
        for tr in trsContents:
            trContents = tr.contents
            # 清除列表中的\n元素
            while trContents.count('\n') > 0:
                trContents.remove('\n')
            tdName = trContents[0].string
            dic1[tdName] = []
            # 循环td 取第一个td的值为key,后面的为values; eg:尺码 34/XS  36/S/AS	38/M/AM
            for td in trContents:
                if (td != trContents[0]):
                    dic1[tdName].append(td.string)
        print(dic1)
    except:
        print("no contents")
    return str(dic1)


if __name__ == '__main__':
    app.run()

  • 参考:https://cuiqingcai.com/2652.html
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值