爬虫selenium和bs4的脚本

def get_products():

 # 判断单个页面是否被加载出来

 wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, '#mainsrp-itemlist .items .item')))

 html = browser.page_source # 获取页面源代码,所有的

 # 使用BS进行分析

 soup = BeautifulSoup(html, 'lxml')

 items = soup.select('#mainsrp-itemlist .items .item')

 for item in items:

 image = item.select('.pic .img')[0]['data-src']

 price = item.select('.price strong')[0].text

 deal = item.select('.deal-cnt')[0].text[:-3]

 title = item.select('.title')[0].text.strip()

 shop = item.select('.shop')[0].text.strip()

 location = item.select('.location')[0].text

 product = {

  'image': image,

  'price': price,

  'deal': deal,

  'title': title,

  'shop': shop,

  'location': location

 }

 save_text(product)

编写12306抢票脚本Python爬虫需要使用到一些特定的库,如`requests`用于发送HTTP请求,`BeautifulSoup`或`lxml`用于解析HTML内容,以及模拟登录和验证码识别的部分可能会涉及到`selenium`。以下是一个简化的示例,展示如何抓取网页数据: ```python import requests from bs4 import BeautifulSoup # 登录12306 def login(username, password): login_url = 'https://login.12306.cn/login' data = { 'username': username, 'password': password, 'appid': 'some_appid', # 需要实际注册的应用ID 'loginType': 'NT', } response = requests.post(login_url, data=data) if '验证图形码' in response.text: # 验证码环节 captcha_code = input("请输入验证码:") # 实际项目中可以尝试OCR识别 data['captcha'] = captcha_code # 再次发送POST请求 response = requests.post(login_url, data=data) # 抓取车票信息 def get_tickets(url): headers = {'User-Agent': 'Mozilla/5.0'} response = requests.get(url, headers=headers) soup = BeautifulSoup(response.text, 'html.parser') # 解析并提取所需的数据,比如车次、余票等 tickets_data = soup.find_all('div', class_='ticket') # 样式名称可能不同,需根据实际情况调整 return tickets_data # 主函数 if __name__ == '__main__': username = "your_username" password = "your_password" login(username, password) target_url = 'https://kyfw.12306.cn/otn/leftTicket/init' # 搜索页面URL tickets_data = get_tickets(target_url) for ticket in tickets_data: print(ticket.text) # 打印车票信息
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值