From 8b3bf7aab2e610731a5e6126d0af2cf0b98f1b8e Mon Sep 17 00:00:00 2001 From: Parth Shandilya Date: Tue, 29 Dec 2020 12:32:13 +0100 Subject: [PATCH] Release (#9) * Added Badges (#5) * Update Doc * Add Codacy badge (#6) * Add Support for gh-actions (#8) --- .flake8 | 3 +- .github/workflows/ci.yml | 28 ++++++++++++ .travis.yml | 19 -------- README.md | 6 +++ __init__.py | 12 +++-- function.py | 91 ++++++++++++++++++++------------------ other/Scraper-artwork.png | Bin 0 -> 86509 bytes requirements.txt | 62 +++++++++++++------------- run.py | 19 ++++---- 9 files changed, 132 insertions(+), 108 deletions(-) create mode 100644 .github/workflows/ci.yml delete mode 100644 .travis.yml create mode 100644 other/Scraper-artwork.png diff --git a/.flake8 b/.flake8 index 79ac9d3..ba60dd1 100644 --- a/.flake8 +++ b/.flake8 @@ -1,7 +1,6 @@ [flake8] max-line-length = 130 -ignore = W191, - F841 +ignore = W191, F841, W503 exclude = .git, __pycache__ diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..8e71557 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,28 @@ +name: CI + +on: + push: + branches: [master, development] + pull_request: + branches: [master, development] + +jobs: + lint: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + + - name: Setup Python + uses: actions/setup-python@v2 + with: + python-version: 3.9 + + - name: Check python code formatting + run: | + pip install black + black --check . + + - name: Check compliance with pep8, pyflakes and circular complexity + run: | + pip install flake8 + flake8 . diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index f2a7ebb..0000000 --- a/.travis.yml +++ /dev/null @@ -1,19 +0,0 @@ -language: python - -sudo: required - -addons: - apt: - packages: - - python3-dev - -python: - - '3.5' - -cache: pip - -install: - - pip3 install flake8 - -script: - - flake8 . diff --git a/README.md b/README.md index a52449f..0bddc20 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,13 @@ # Ali Scraper +![Ali Scraper](/other/Scraper-artwork.png) + A scraper which scraps Ali Express and get the product details in a Google spreadsheet. +[![Build Status](https://github.com/ParthS007/Ali-Scraper/workflows/CI/badge.svg)](https://github.com/ParthS007/Ali-Scraper/actions) +![Lines of code](https://tokei.rs/b1/github/ParthS007/Ali-Scraper) +[![HitCount](http://hits.dwyl.io/ParthS007/Ali-Scraper.svg)](http://hits.dwyl.io/ParthS007/Ali-Scraper) + ## Technology - Python 3 diff --git a/__init__.py b/__init__.py index ec4df2c..ad48293 100644 --- a/__init__.py +++ b/__init__.py @@ -3,9 +3,13 @@ max_orders = 100 threshold = 5 -scope = ['https://spreadsheets.google.com/feeds', - 'https://www.googleapis.com/auth/drive'] - -credentials = ServiceAccountCredentials.from_json_keyfile_name('ALI_Scraper-3.json', scope) +scope = [ + "https://spreadsheets.google.com/feeds", + "https://www.googleapis.com/auth/drive", +] + +credentials = ServiceAccountCredentials.from_json_keyfile_name( + "ALI_Scraper-3.json", scope +) base_url = "https://www.aliexpress.com/wholesale?SortType=total_tranpro_desc" diff --git a/function.py b/function.py index 62352cc..87403fa 100644 --- a/function.py +++ b/function.py @@ -7,8 +7,8 @@ from urllib.request import urlopen from bs4 import BeautifulSoup as BS -price_patt = re.compile(r'.*\$(.*)') -orders_patt = re.compile(r'.*\((.*)\)') +price_patt = re.compile(r".*\$(.*)") +orders_patt = re.compile(r".*\((.*)\)") def get_end_page(url): @@ -17,50 +17,45 @@ def get_end_page(url): with contextlib.closing(urlopen(url)) as page: data = page.read() Soup = BS(data, "lxml") - totalResult = Soup.find('strong', {'class': 'search-count'}) + totalResult = Soup.find("strong", {"class": "search-count"}) print("Sleeping for 25 seconds for end page") time.sleep(25) - results = int(totalResult.text.replace(',', '')) - if (results >= 4800): + results = int(totalResult.text.replace(",", "")) + if results >= 4800: endPage = 100 - elif (results > 0 and results < 4800): + elif results > 0 and results < 4800: endPage = math.ceil((results / 48)) return endPage def get_items_on_page(url, page_no): print("Page: " + str(page_no)) - headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5)\ - AppleWebKit/537.36 (KHTML, like Gecko) Cafari/537.36'} + headers = { + "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5)\ + AppleWebKit/537.36 (KHTML, like Gecko) Cafari/537.36" + } with contextlib.closing(urlopen(url + "&page=" + str(page_no))) as page: data = page.read() soup = BS(data, "lxml") - list_ele = soup.find('ul', {'id': 'hs-below-list-items'}) - items_ele = list_ele.find_all('div', {'class': 'item'}) + list_ele = soup.find("ul", {"id": "hs-below-list-items"}) + items_ele = list_ele.find_all("div", {"class": "item"}) items = {} for i, ele in enumerate(items_ele): - info = ele.find('div', {'class': 'info'}) - link_ele = info.find('a', {'class': 'history-item'}) - link = link_ele['href'] + info = ele.find("div", {"class": "info"}) + link_ele = info.find("a", {"class": "history-item"}) + link = link_ele["href"] name = link_ele.text.strip() - price_text = info.find('span', {'class': 'value'}).text + price_text = info.find("span", {"class": "value"}).text price = price_patt.search(price_text).groups()[0] - orders_ele = info.find('span', {'class': 'order-num'}) - orders_string = orders_ele.find('em').text - orders_raw = orders_patt.search( - orders_string - ).groups()[0].replace(',', '') + orders_ele = info.find("span", {"class": "order-num"}) + orders_string = orders_ele.find("em").text + orders_raw = orders_patt.search(orders_string).groups()[0].replace(",", "") orders = int(orders_raw) tokens = link.split("?")[0].split("/") id = int(tokens[-1].split(".")[0]) - items[id] = { - "name": name, - "price": price, - "link": link, - "orders": orders - } + items[id] = {"name": name, "price": price, "link": link, "orders": orders} return items @@ -99,13 +94,13 @@ def put_items(sheet, items, diff): for i, id in enumerate(items.keys()): item = items[id] cell_range[j].value = id - cell_range[j + 1].value = item['name'] - cell_range[j + 2].value = item['price'] - cell_range[j + 3].value = item['link'] - cell_range[j + 4].value = item['orders'] - cell_range[j + 5].value = item['prev_orders'] - cell_range[j + 6].value = item['delta'] - cell_range[j + 7].value = item['interesting'] + cell_range[j + 1].value = item["name"] + cell_range[j + 2].value = item["price"] + cell_range[j + 3].value = item["link"] + cell_range[j + 4].value = item["orders"] + cell_range[j + 5].value = item["prev_orders"] + cell_range[j + 6].value = item["delta"] + cell_range[j + 7].value = item["interesting"] j += 8 if diff > 0: last_row = len(items) + 1 @@ -119,13 +114,15 @@ def put_items(sheet, items, diff): def send_msg(items, item_name): # reply to thread or post an article in the newsgroup - SMTPSVR = 'smtp.gmail.com' - who = 'xxxxxxxxxxx3@gmail.com' + SMTPSVR = "smtp.gmail.com" + who = "xxxxxxxxxxx3@gmail.com" msg = """Subject: Hot items: {item_name} Hello Nat, Here are some interesting items: - """.format(item_name=item_name) + """.format( + item_name=item_name + ) """ with open('message', 'w') as msg: msg.write('From: YOUR_NAME_HERE \n') @@ -133,15 +130,19 @@ def send_msg(items, item_name): msg.write('Subject: %s\n' % subject) subprocess.call(['nano', 'message']) """ - recipients = ['xxxxxxxxxxx@gmail.com'] # Add Reciepent Mail + recipients = ["xxxxxxxxxxx@gmail.com"] # Add Reciepent Mail item_list = [] for id in items: - item_list.append("{name} - {link} - increased by {delta}(From {prev_orders} to {orders})".format(name=items[id]['name'], - link=items[id]['link'], - delta=items[id]['delta'], - prev_orders=items[id]['prev_orders'], - orders=items[id]['orders'])) - msg += '\n\n'.join(item_list) + item_list.append( + "{name} - {link} - increased by {delta}(From {prev_orders} to {orders})".format( + name=items[id]["name"], + link=items[id]["link"], + delta=items[id]["delta"], + prev_orders=items[id]["prev_orders"], + orders=items[id]["orders"], + ) + ) + msg += "\n\n".join(item_list) msg += """ Regards, @@ -154,7 +155,7 @@ def send_msg(items, item_name): exit() sendSvr.ehlo() try: - sendSvr.login('xxxxx@gmail.com', 'xxxxxx') # Add Your Email ID and Password + sendSvr.login("xxxxx@gmail.com", "xxxxxx") # Add Your Email ID and Password except SMTPAuthenticationError: print("Invalid SMTP credentials.") exit() @@ -165,7 +166,9 @@ def send_msg(items, item_name): def next_available_row(worksheet): - str_list = list(filter(None, worksheet.col_values(1))) # fastest but perhaps stupid :) + str_list = list( + filter(None, worksheet.col_values(1)) + ) # fastest but perhaps stupid :) return len(str_list) diff --git a/other/Scraper-artwork.png b/other/Scraper-artwork.png new file mode 100644 index 0000000000000000000000000000000000000000..ac7012e692392d71de8c761ac547fc6c7c0539d8 GIT binary patch literal 86509 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 Ddp~rv literal 0 HcmV?d00001 diff --git a/requirements.txt b/requirements.txt index 16be7f9..e7ed88e 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,34 +1,34 @@ -asn1crypto==0.24.0 -astroid==1.6.5 -beautifulsoup4==4.6.0 +asn1crypto==1.4.0 +astroid==2.4.2 +beautifulsoup4==4.9.3 bs4==0.0.1 -cachetools==2.1.0 -certifi==2018.4.16 -cffi==1.11.5 -chardet==3.0.4 -cryptography>=2.3 -google-api-python-client==1.7.3 -google-auth==1.5.0 -google-auth-httplib2==0.0.3 -gspread==3.0.0 -html5lib==1.0.1 -httplib2==0.11.3 -idna==2.6 -isort==4.3.4 -lazy-object-proxy==1.3.1 -lxml==4.2.1 +cachetools==4.2.0 +certifi==2020.12.5 +cffi==1.14.4 +chardet==4.0.0 +cryptography>=3.3.1 +google-api-python-client==1.12.8 +google-auth==1.24.0 +google-auth-httplib2==0.0.4 +gspread==3.6.0 +html5lib==1.1 +httplib2==0.18.1 +idna==2.10 +isort==5.6.4 +lazy-object-proxy==1.5.2 +lxml==4.6.2 mccabe==0.6.1 -oauth2client==4.1.2 -pyasn1==0.4.3 -pyasn1-modules==0.2.1 -pycparser==2.18 -pylint==1.9.2 -pyOpenSSL==18.0.0 -requests>=2.20.0 -rsa==3.4.2 -selenium==3.12.0 -six==1.11.0 -uritemplate==3.0.0 -urllib3>=1.23 +oauth2client==4.1.3 +pyasn1==0.4.8 +pyasn1-modules==0.2.8 +pycparser==2.20 +pylint==2.6.0 +pyOpenSSL==20.0.1 +requests>=2.25.1 +rsa==4.6 +selenium==3.141.0 +six==1.15.0 +uritemplate==3.0.1 +urllib3>=1.26.2 webencodings==0.5.1 -wrapt==1.10.11 +wrapt==1.12.1 diff --git a/run.py b/run.py index adee5e6..8334e6c 100644 --- a/run.py +++ b/run.py @@ -30,18 +30,21 @@ def main_search(sheet, query): for id in items: prev_orders = prev_items_orders.get(id) if prev_orders is not None: - items[id]['prev_orders'] = prev_orders - items[id]['delta'] = items[id]['orders'] - items[id]['prev_orders'] + items[id]["prev_orders"] = prev_orders + items[id]["delta"] = items[id]["orders"] - items[id]["prev_orders"] - if items[id]['delta'] >= threshold and items[id]['prev_orders'] <= max_orders: + if ( + items[id]["delta"] >= threshold + and items[id]["prev_orders"] <= max_orders + ): interesting[id] = items[id] - items[id]['interesting'] = True + items[id]["interesting"] = True else: - items[id]['interesting'] = False + items[id]["interesting"] = False else: - items[id]['prev_orders'] = None - items[id]['delta'] = None - items[id]['interesting'] = None # new item! + items[id]["prev_orders"] = None + items[id]["delta"] = None + items[id]["interesting"] = None # new item! if interesting: function.send_msg(interesting, item_name=query)